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