Python Glossary English

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