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