例如:
class Example:
def __init__(self):
self.v = 0
@property
def value(self):
return self.v
@value.setter
def value(self, v):
self.v = v
class SubExample(Example):
pass
是否有可能只在SubExample中重写getter值?
最佳答案 你可以这样做
class DoubleExample(Example):
@Example.value.getter
def value(self):
return self.v * 2
o = Example()
o.value = 1
print o.value # prints "1"
p = DoubleExample()
p.value = 1
print p.value # prints "2"
但是,这仅适用于Example是一个新样式类(类Example(object):)而不是旧样式类(类Example :),因为它在您的示例代码中.
警告:Thomas在评论中指出,如果您使用多重继承(类Foo(Bar,Baz)),此方法可能无法按预期运行.