73_类的定义

76.类的定义

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tioVD7rf-1599696947379)(A447B39D99CA4A7889A1C21CE4791239)]

我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打 包在一起”.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aU4uoxhT-1599696947382)(AD217284FD794D4399FDE5407838ECB4)]

  对象是类的具体实体,一般称为“类的实例”。(比如一个 Student 类 创造了一个 实体 叫做 小李 。 小李 是一个学生。 就是这个 Student类的实例化对象。)

类看做“饼干模具”对象就是根据这个“模 具”制造出的“饼干”

  从一个类创建对象时,每个对象会共享这个类的行为(类中定义的方法),但会有自己的属 性值(不共享状态)。更具体一点:“方法代码是共享的,属性数据不共享”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q93owTav-1599696947383)(A038C45BFEE5449EA9265D169FF26BD5)]

  Python中,“一切皆对象”。类也称为“类对象”,类的实例也称为“实例对象”。
定义类的语法格式如下:

class 类名: 
    类体

要点如下:

  1. 类名必须符合“标识符”的规则;一般规定,首字母大写,多个单词使用“驼峰原则”
  2. 类体中我们可以定义属性和方法
  3. 属性用来描述数据方法(即函数)用来描述这些数据相关的操作

【操作】一个典型的类的定义

# 创建一个类


class Student:  # 类名  一般首字母大写  ,多个单词用驼峰原则

    def __init__(self, name, score):  # 方法,也就是函数
        self.name = name  # self 必须在 第一个
        self.score = score     # 这是 构造方法

    def say_score(self):  # self 必须位于第一位
        print('{0}的分数是:{1}'.format(self.name, self.score))


# 这句的意思是 调用' _int_ '构建函数  ,'self'代表的自己,把student的地址传给'self'
s1 = Student('onepis', 100)  # 通过类名()调用构造函数
# s1 就是一个 实例化对象。
onepis=Student('onepis',100)
s1.say_score() # 调用 此方法 输出 分数

# 添加年龄属性 和 工资 属性
s1.age = 32
s1.salary = 3000
print(s1.salary)


# 这叫实际例对象 S2 
s2 = Student('litao', 100)  # 新建的  s2 里面没 有   age   和 salary
# 所以 下面  5代码   会报错
# 类  创建的  对象s2  里面的  say_score  传递 self (注,self代表的就是实例化出来的对象)   找到  Student .方法(例如say_score)是一个行为,可以被  共享

# print(s2.age) # 报错
s2.say_score()

Student.say_score(s2)  # 解释器 实际调用  是这样调用的

print(dir(s1))  # dir  获得对象所有的  属性
print('**********************')
print(s1.__dict__)  # 获得我们直观的自己定义的属性

print(isinstance(s2, Student))  # s2是不是 Stundent 这个类型 的 实例对象(就是创造的饼干)

运行结果:

onepis的分数是:100
3000 # salary 工资
litao的分数是:100
litao的分数是:100
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name', 'salary', 'say_score', 'score'] 
# 调用 dir 查看的所有属性 
**********************
# 调用  .__dict__ 查看 我们自己创建的 属性。
{'name': 'onepis', 'score': 100, 'age': 32, 'salary': 3000}
True # 是Student 的 实例化 对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值