对象
一个对象就是一个类的 实例化后的实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每个对象可以有独特的属性。
__init__方法用来为对象定制自己独有的特征
构造函数:
加上__init__实例化的步骤:
1、先产生一个空对象
2、 触发university.__init__("王二丫","女",18)并传入值
class university: school = "Peking University" # 数据属性 (类变量) def __init__(self,name,sex,age): # 构造函数(在实例化时做一些类的初始化工作) self.Name = name # 实例变量(静态属性) 作用就是实例本身 self.Sex = sex self.Age = age # stu1 = university("王二丫", "女", 18) # stu1.Name="王二丫" # stu1.Sex = "女" # stu1.Age = 18 def learn(self): # 函数属性 (动态属性) print("is learning") def eat(self): # 函数属性 print("is sleeping") # __init__方法用来为对象定制自己独有的特征 stu1 = university("王二丫","女",18)
查看
#查看 print(stu1.__dict__) # stud1有独立的名称空间(字典形式) print(stu1.Name) print(stu1.Age) print(stu1.Sex)
改
stu1.Name = "李二丫" print(stu1.__dict__) print(stu1.Name)
删除
# 删 del stu1.Name print(stu1.__dict__)
增加
# 增 stu1.class_name = "金融" print(stu1.__dict__)
对象与类的绑定
对象:特征与技能的结合体
类:一系列对象相似的特征与相似的技能的结合体
类中的数据属性:所有的对象所共有的(内存地址一样)
# 类中的数据属性:所有的对象所共有的(内存地址一样) print(university.school) # 普通函数的内存地址 print(stu1.school,id(stu1.school)) print(stu2.school,id(stu2.school)) print(stu3.school,id(stu3.school))
类中的函数属性:绑定给对象使用的,绑定到不同的对象是不同的方法,对象调用绑定方式时,谁来说调用,就会默认把对象本身当作第一个参数传入self
stu1.learn() # 等同于print(stu1.learn) stu2.learn()
当对象访问一个属性时,会先从自己的名称空间中找这个属性,没有的从类里面去找,没有从父类去找,再没有就报错了。
析构函数 :
在实例释放、销毁的时候执行的,通常用于做一些收尾工作。如关闭一些数据库的链接,打开的临时文件。
__del__