我有一个行为不端的 iPython,它运行了两次 getter(但不是 setter):
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
- 带有最新开发工具更新的 OSX ML
- 一个有很多东西的venv
这不再是一个代码问题,因为这似乎不是属性正常工作的方式。