gpt4 book ai didi

python - 为什么 python @property getter 方法每次调用都会运行两次,我可以停止它吗?

转载 作者:行者123 更新时间:2023-12-01 05:46:32 25 4
gpt4 key购买 nike

我有一个行为不当的 iPython,它运行 getters 两次(但不运行 setters):

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

这不再是一个代码问题,因为这似乎不是属性正常工作的方式。

最佳答案

这是一个老问题,但问题在 IPython 6.0.0 中仍然存在

解决方案是使用

%config Completer.use_jedi = False

在解释器中,或添加

c.Completer.use_jedi = False

到 ipython_config.py 文件

关于python - 为什么 python @property getter 方法每次调用都会运行两次,我可以停止它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15939716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com