次のコードに示すように、Python (2.7) クラスのメンバーをプロパティでオーバーライドしようとしていました。
class Base:
def __init__(self):
self.foo = 1
class Derived(Base):
foo = property(lambda self: 2)
print Derived().foo
ただし、最後の行は 2 ではなく 1 を出力します。プロパティが機能するはずだと思っていた方法 (つまり、メンバーを後で関数に簡単に変更する) からすると、これは直感に反するように思えます。何か不足していますか?回避策はありますか?