все Python 3weakrefпонятие
weakref.CallableProxyType
слабые ссылки
Тип прокси на вызываемый объект — функцию или объект с __call__. Сам прокси тоже можно вызывать.
Синтаксис
type(p) is weakref.CallableProxyType
weakref.proxy сам выбирает тип по объекту: если у объекта есть __call__, прокси становится CallableProxyType и вызов p() переадресуется. Ловушка — прокси на связанный метод: obj.method создаётся заново при каждом обращении и умирает сразу, так что такой прокси мёртв с первой строки. Для методов есть WeakMethod.
Примеры
import weakref
class Counter:
def __call__(self):
return 1
c = Counter()
p = weakref.proxy(c)
print(type(p) is weakref.CallableProxyType, p()) # → True 1
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности