我玩弄Python中的属性,我想知道这是如何@ propertyName.deleter装饰工程。我可能错过了一些东西,我找不到Google的明确答案。deleter装饰使用Python中的属性
我想实现的是当这个deleter行为被调用时,我可以触发其他动作(例如:使用我的3d应用程序SDK)。
现在只是一个简单的打印()似乎并没有被触发。
是deleter当我使用删除属性del(instance.property)?
否则,我该如何做到这一点?
class M():
def __init__(self):
self._m = None
@property
def mmm(self):
return self._m
@mmm.setter
def mmm(self, val):
self._m = val
@mmm.deleter
def mmm(self):
print('deleting') # Not printing
del(self._m)
if __name__ == '__main__':
i = M()
i.mmm = 150
print(i.mmm)
del(i.mmm)
print(i.mmm)
非常感谢你(:
确实不是一个明确的错误,谢谢为了快速回答。 – Xavier 2009-12-16 04:30:50