【发布时间】:2018-11-08 02:10:17
【问题描述】:
我想同时覆盖子类中属性的 getter 和 setter。考虑以下python3代码sn-p:
class Base():
@property
def value(self):
return "Base.value"
@value.setter
def value(self, value):
pass
class Child(Base):
@Base.value.getter
def value(self):
return "Child.value"
@Base.value.setter
def value(self, value):
pass
c = Child()
print(c.value)
这个程序打印Base.value,这意味着value getter 没有被覆盖。但是,如果我删除 Child 类中的 value setter,程序会打印 Child.value,这意味着 getter 被覆盖。
这种覆盖属性的方式有什么问题?为什么修改 setter 会改变 getter 的行为?以及如何正确覆盖子类中的 getter 和 setter?
【问题讨论】:
-
你试过看这里吗? :stackoverflow.com/questions/3336767/…
-
@WhatsThePoint & DevX:这是关于在子属性中调用父属性的不同问题。它没有解决我在这里提到的问题。
标签: python python-3.x