все Python 3weakrefфункция
weakref.proxy()
слабые ссылки
Создаёт прокси — слабую ссылку, с которой работают как с самим объектом, без вызова r(). После удаления объекта любое обращение даёт ReferenceError.
Синтаксис
p = weakref.proxy(obj, callback=None)
Прокси удобнее ref, но опаснее: ref честно вернёт None, а прокси упадёт посреди выражения с ReferenceError. Прокси не хешируется, поэтому ключом словаря или элементом множества быть не может, и proxy is obj всегда False. Для вызываемого объекта получится CallableProxyType, для прочих — ProxyType. Если важно проверять «жив ли», берите weakref.ref.
Примеры
import weakref
class User:
name = 'Ann'
u = User()
p = weakref.proxy(u)
print(p.name) # → Ann
del u
try:
p.name
except ReferenceError:
print('ReferenceError') # → ReferenceError
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности