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__ ,此参数是该属性的描述信息