【发布时间】:2010-12-27 02:26:16
【问题描述】:
我正在使用 Python 中的属性,我想知道这个 @propertyName.deleter 装饰器是如何工作的。我可能遗漏了一些东西,我无法通过谷歌找到明确的答案。
我想要实现的是,当调用此 deleter 行为时,我可以触发其他操作(例如:使用我的 3d 应用程序 SDK)。
目前似乎没有触发一个简单的 print()。
当我使用 del(instance.property) 删除属性时会触发 deleter 吗?
否则,我该如何实现?
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)
非常感谢(:
【问题讨论】:
标签: python properties decorator