ipython и количество ссылок - PullRequest
4 голосов
/ 16 мая 2011

Может показаться, что 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

Что происходит? Откуда взялись две дополнительные ссылки?

1 Ответ

3 голосов
/ 16 мая 2011

Да, IPython поддерживает ссылки на объекты за сценой. В частности, использование% run оставляет ссылки в оборудовании, которое обрабатывает модули.

Мы работаем над этим в версии для разработчиков (которая, как мы надеемся, скоро станет 0.11) - для получения дополнительной информации см. этот выпуск . Ссылки все еще будут там, но будут способы избавиться от них (%reset, чтобы очистить их все, или %xdel obj для одного).

...