При этом я столкнулся с ситуацией, которую я не могу объяснить.
Сокращенный минимальный пример выглядит следующим образом:
1-я ячейка:
Код: Выделить всё
import gc
__objs = gc.get_objects()
_objs = [id(o) for o in __objs]
#del __objs
Код: Выделить всё
variable = ["test"]
Код: Выделить всё
id(variable) in _objs
Выполнение всего в одной ячейке или внутри файла .py приводит к правильной оценке «False».
Что именно здесь происходит? Как идентификатор переменной, экземпляр которой создается во второй ячейке, может оказаться в _objs, но только если __objs будет удален? И почему это происходит только с тремя отдельными ячейками?
Будем благодарны за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/791 ... -before-in
Мобильная версия