Understanding inheritance of parent's attribute setter
当我试图在子类中设置一个属性时,我想提出一个
1 2 3 4 5 6 7 8 9 10 11 12 | class Parent(): def __init__(self): self._attribute = 1 @property def attribute(self): return self._attribute @attribute.setter def attribute(self, value): self._attribute = value |
我看到我可以定义一个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class ChildA(Parent): @Parent.attribute.setter def attribute(self, value): raise NotImplementedError('Not implemented.') class ChildB(Parent): @property def attribute(self): return self._attribute @attribute.setter def attribute(self, value): raise NotImplementedError('Not implemented.') |
上面有什么不同吗?
这两种解决方案没有区别。
实际上,
A property object has
getter ,setter , anddeleter methods usable as
decorators that create a copy of the property with the corresponding
accessor function set to the decorated function.
(强调我的)
所以不,使用
总的来说,最好使用
相关问题:
- 在python中使用属性的getter
- 不带setter的python重写getter
- 重写python中的属性