Python Glossary English

все Python 3gcфункция

gc.get_referrers()

интроспекция

Возвращает контейнеры, которые прямо ссылаются на переданный объект. Помогает понять, кто держит объект в памяти.

Синтаксис

gc.get_referrers(*objs)

В ответе почти всегда есть «лишние» ссылки: словарь глобальных переменных модуля, кадр текущей функции. Мёртвые циклы, ещё не собранные, тоже попадают туда — сначала вызовите gc.collect. Обход всех объектов медленный, а найденные объекты могут быть недостроены, поэтому функция только для отладки, не для логики программы.

Примеры

import gc
item = ['data']
holder = [item]
print(any(r is holder for r in gc.get_referrers(item)))  # → True
print(any(r is globals() for r in gc.get_referrers(item)))  # → True — глобальные тоже держат

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности