下面是一个例子Python的属性和方法覆盖的问题:为什么子类物业仍调用基类的方法
class A(object):
def f1(self):
return []
test1 = property(f1)
class B(A):
def f1(self):
return [1, 2]
if __name__ == "__main__":
b = B()
print b.test1
我希望可以将输出为[1,2],但它打印[]代替。
这与我的预期背道而驰。
我在代码中犯了什么错误吗?如果不是这样,我认为它是这样工作的,因为当创建属性test1时,它绑定到基类A的f1函数。什么是可能的替代实现来实现我想要的?
BTW,为什么CW一个完美的技术问题容易受到尖锐,同样的技术答案?我在发现CW标签之前做出了回应 - 但是,我讨厌并且通常避免错误标记的问题(CW当他们明显不应该,反之亦然)。 – 2010-08-03 04:39:21