4

ipython当我不期望它时,它似乎可能会保留对对象的引用。

考虑以下脚本 ( grc.py):

import sys
obj = []
print sys.getrefcount(obj)

当我运行它时ipython

Python 2.7.1 |EPD 7.0-2 (64-bit)| (r271:86832, Nov 29 2010, 13:51:37)

In [1]: %run grc.py
2

In [2]: print sys.getrefcount(obj)
4

这是怎么回事?额外的两个参考来自哪里?

4

1 回答 1

3

是的,IPython 确实在幕后维护了对对象的引用。特别是使用 %run 会在处理模块的机器中留下引用。

我们正在开发版本中进行开发(希望很快会成为 0.11) - 请参阅此问题以获取更多信息。引用仍然存在,但会有办法摆脱它们(%reset清除它们,或%xdel obj单独清除它们)。

于 2011-05-16T16:31:43.873 回答