Python Glossary English

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