Python Glossary English

все 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Сообщить о неточности