все Python 3weakrefфункция
weakref.getweakrefcount()
интроспекция
Возвращает, сколько слабых ссылок и прокси сейчас указывают на объект. Обычные ссылки не считаются — для них есть sys.getrefcount.
Синтаксис
weakref.getweakrefcount(obj)
Число бывает меньше ожидаемого: два вызова weakref.ref(obj) без callback возвращают один и тот же объект ссылки, и счётчик вырастет на 1, а не на 2. Прокси считаются отдельно. Для объекта, который слабых ссылок не поддерживает (int, list), функция просто вернёт 0, а не ошибку — проверять поддержку ею нельзя.
Примеры
import weakref
class Item:
pass
it = Item()
r1 = weakref.ref(it)
r2 = weakref.ref(it)
print(r1 is r2, weakref.getweakrefcount(it)) # → True 1
p = weakref.proxy(it)
print(weakref.getweakrefcount(it)) # → 2
print(weakref.getweakrefcount([1, 2])) # → 0
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности