getter を 2 回実行する (ただし、setter は実行しない) 不正な動作をする iPython があります。
class C(object):
@property
def foo(self):
print 'running C.foo getter'
return 'foo'
@foo.setter
def foo(self, value):
print 'running setter'
ipython からのログ:
In [2]: c = C()
In [3]: c.foo
running C.foo getter
running C.foo getter
Out[3]: 'foo'
In [4]: c.foo = 3
running setter
環境は
- Python 2.7.3 (デフォルト、2012 年 12 月 6 日 13:30:21)
- IPython 0.13.1
- 最近の dev-tools アップデートを含む OSX ML
- たくさんのものを持つvenv
これは、プロパティが正常に機能する方法ではないように思われるため、もはやコードの問題ではありません。