我玩弄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