1 多继承的区别
两种调用父类方法的格式
01:父类名.父类方法(self)
02:super().父类方法()
多继承的情况下:
01会多次调用父类方法
02只调用一次父类方法
多继承时,使用super方法,对父类的传参数,必须把参数全部传递,
单继承时,使用super方法,只能传父类所需的方法
2 各种名词
类对象 : 存放类相关数据的一片空间
实例对象: 存放实例相关数据的一片空间
类属性:公共使用的属性
实例属性:属于每个对象私有的属性
实例方法:修改实例属性的,记录起来实例的空间地址 self,用实例名调用
类方法: 修改类属性,记录的类的空间地址 cls,用类名调用
静态方法: 不能修改任何属性,无参数
3 property属性的类属性方式定义
01:property属性:一种用起来像是使用实例属性一样的特殊属性,可以对应某个方法
例:
# ############### 定义 ############### class Foo: def func(self): pass # 定义property属性 @property def prop(self): pass # ############### 调用 ############### foo_obj = Foo() foo_obj.func() # 调用实例方法 foo_obj.prop # 调用property属性
02:三种@property装饰器
@property
def 方法名(self):
...
@方法名.setter
def 方法名(self, value):
...
@方法名.deleter
def 方法名(self):
...
调用:
实例对象.price
实例对象.price = 123
del 实例对象.price
03: property属性的第二种使用方式:类属性方式
class Goods(object): def get_price(self): print("get price...") return 100 def set_price(self, value): """必须两个参数""" print("set price...") print(value) def del_price(self): print("del price") price = property(get_price, set_price, del_price, "相关描述...")
property方法中有个四个参数
第一个参数是方法名,调用 对象.属性 时自动触发执行方法
第二个参数是方法名,调用 对象.属性 = XXX 时自动触发执行方法
第三个参数是方法名,调用 del 对象.属性 时自动触发执行方法
第四个参数是字符串,调用 对象.属性.__doc__ ,此参数是该属性的描述信息