- 掌握@property的两个要点
- 将方法伪装成属性
class C: @property def f1(self): return 1 obj = C() #f1在类中是方法,却和调用属性的写法一样 obj.f1
-
- 调用的对应关系
class C: @property def f1(self): print(1) @f1.setter def f1(self, val): print(val) @f1.deleter def f1(self): print('del') obj = C() obj.f1 #调用第一个方法 obj.f1 = 2 #调用第二个方法 del obj.f1 #调用第三个方法
扩展: property()的使用
class C: def _get(self): print('get') def _set(self, v): print(v) prop = property(_get, _set) obj = C() obj.prop #调用_get方法 obj.prop = 'set' #调用_set方法