все Python 3weakrefпонятие
weakref
модуль
Слабые ссылки: указывают на объект, не мешая сборщику мусора его удалить. Основа кэшей и реестров.
Синтаксис
import weakref
weakref нужен, когда вспомогательная структура — кэш, реестр наблюдателей — не должна продлевать жизнь объектам: WeakValueDictionary забывает значение, как только на объект не осталось обычных ссылок. Слабую ссылку нельзя взять на int, str, tuple и обычные list и dict — будет TypeError. Вместо __del__ для действий при уничтожении объекта надёжнее weakref.finalize.
Примеры
import weakref
class Node:
pass
n = Node()
r = weakref.ref(n)
print(r() is n) # → True
del n
print(r()) # → None — объект удалён, слабая ссылка его не удержала
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности