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