Python Glossary English

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

gc.is_tracked()

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

Проверяет, отслеживает ли объект сборщик циклического мусора. Числа и строки — нет, списки и экземпляры классов — да.

Синтаксис

gc.is_tracked(obj)

Неатомарные объекты сборщик может «отпускать» ради экономии, и правила зависят от версии: пустой словарь или кортеж из чисел даёт False на одних версиях и True на других (в 3.14 и 3.15 их поменяли). Поэтому в тестах на is_tracked опираются только на устойчивые случаи — атомы и списки. Отслеживание — не то же, что жизнь объекта: неотслеживаемое число освобождается подсчётом ссылок, как обычно.

Примеры

import gc
class P:
    pass
print(gc.is_tracked(42), gc.is_tracked('text'))  # → False False
print(gc.is_tracked([]), gc.is_tracked(P()))  # → True True
print(gc.is_tracked({}))  # → ? False до 3.13, True с 3.14

См. также

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