看起来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到底怎么回事?额外的两个引用从何而来?
发布于 2011-05-17 00:31:44
是的,IPython确实维护了对幕后对象的引用。特别是使用%run时,会在处理模块的机器中留下引用。
我们正在开发版本中(希望很快就会变成0.11 )--有关更多信息,请参阅this issue。引用仍然存在,但会有方法消除它们(%reset清除所有引用,或%xdel obj清除单个引用)。
https://stackoverflow.com/questions/6019835
复制相似问题