все Python 3sysфункция
sys.getrefcount()
память
Возвращает счётчик ссылок на объект. Число обычно на единицу больше ожидаемого: аргумент самого вызова — тоже ссылка.
Синтаксис
sys.getrefcount(object)
Для a = [] ответ 2, а не 1 — вторую ссылку держит параметр getrefcount. С Python 3.12 у «бессмертных» объектов (None, True, малые int, многие строки) счётчик огромный и ни о чём не говорит. Надёжны только значения 0 и 1; в свободнопоточной сборке и с оптимизациями 3.14 числа тоже другие. Это деталь CPython: искать утечки лучше через gc и tracemalloc.
Примеры
import sys
a = []
print(sys.getrefcount(a)) # → 2
b = a
print(sys.getrefcount(a)) # → 3
del b
print(sys.getrefcount(a)) # → 2
# Python 3.12+
import sys
print(sys.getrefcount(None) > 10 ** 9) # → True — бессмертный объект
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности