Python Glossary English

все Python 3weakrefпонятие

weakref.ProxyType

слабые ссылки

Тип прокси, который weakref.proxy() возвращает для невызываемого объекта. Нужен для проверки isinstance, создавать его напрямую нельзя.

Синтаксис

type(p) is weakref.ProxyType

Прокси подменяет почти всё поведение объекта, но не тип: type(p) — ProxyType, а не класс объекта, и isinstance(p, User) даёт True лишь потому, что прокси переадресует __class__. Чтобы узнать, что перед вами прокси, проверяйте type(p) против кортежа weakref.ProxyTypes — он покрывает и CallableProxyType.

Примеры

import weakref
class User:
    pass
u = User()
p = weakref.proxy(u)
print(type(p) is weakref.ProxyType, type(p) is User)  # → True False
print(isinstance(p, User), type(p) in weakref.ProxyTypes)  # → True True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности