@property
- 掌握@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方法
浙公网安备 33010602011771号