super所取得是父类的定义不是对象
获取父类代码
所谓继承就是chuang'za
super所取得是父类的定义不是对象
获取父类代码
所谓继承就是chuang'za
mro
多重继承不要用
因为有根类object,所以会有__init__
在定义一个新类的时候,就相当于在重写方法
object所有类的父类
dir()
继承
继承出了构造方法以外
重写方法
继承
默认object类
__new__方法便在里面
私有属性也能继承
封装--隐藏对象属性与实现细节
继承
多态--同一个对象调用同一个方法执行情况不同
单例用对象保存起来
@property装饰器
方法调用--属性调用
但不可以设置
装饰器代替set get
私有方法
对外私有
def __
dir()字典显示函数属性
封装的实现
私有属性/方法
方法没有重载
方法同名会覆盖
为类添加新方法
方法函数也是对象
一切都是对象
__del__
垃圾回收,没人用就删除
???
程序结束调用del
类方法,静态方法
@classmethod
cls--类独有
注意类调用实例方法时不可直接调,类本身时不含有的,只有对应到实例对象才可以调用实例方法,放在类内只是为了方便共享方便调用
静态方法--与类无关的方法
@staticmethod
两种方法不能调用实例方法
调的时候还没有对象
‘在模具里面想吃饼干’
类属性类方法--class下面,直接属于类
与实例属性实例方法不同--在init内
1.模具对象没有实例属性,但实例方法在模具对象之中
2.体会类创建的过程,实例对象创建的过程
类对象
1.type数据类型相当于模具对象
通过模具对象生产其他对象
实例方法--难点
1.方法内含self也就相当于将给予对象方法
2.a.say_score()--- 方法是共享的
计算机看到的是Student.say_score(a)传入a对象标签地址
名义上方法是属于对象的,但计算机是通过模具通用方法传入对象地址输出方法
方法都是通用的,只有对应的self地址不同
3.dir--获取对象属性及方法
obj.__dict__获取属性字典
pass先占个地儿
isinstance对象是否为另一个对象实例对象
建立类时在内存中建立一个类对象type
模具
一、Student(‘于承泽’, 18)--建立一个新的对象
1.new方法建立新的对象
2.init初始化对象
3.具备id--123,type--class, values--属性与方法
二、ycz = Student(‘于承泽’, 18)
把ycz这个标签赋予对象--123也是标签地址
三、内部调用时使用self相当于例用地址id去调用
外部调用通过标签--实例对象去调用
del 删除
方法也是属性
__init__
注意initial只是初始化对象--给实例属性赋值
__new__
才是创建对象
id,type,values
不加self就是形参,加了就是对象的属性