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

どうしたの?余分な 2 つの参照はどこから来たのですか?

4

1 に答える 1

3

はい、IPythonは舞台裏でオブジェクトへの参照を維持します。特に%runを使用すると、モジュールを処理する機構に参照が残ります。

現在、開発バージョンで作業中です(まもなく0.11になることを願っています)。詳細については、この問題を参照してください。参照は引き続き存在しますが、それらを取り除く方法があります(%resetすべてをクリアするか%xdel obj、1つだけクリアする)。

于 2011-05-16T16:31:43.873 に答える