Встречается на собеседованиях • сегодня

Когда сборщик мусора удаляет ссылки

В Python сборщик мусора (GC) удаляет объекты, когда на них больше нет ссылок (reference counting). Если счетчик ссылок достигает нуля, память освобождается немедленно.

Для циклических ссылок (когда объекты ссылаются друг на друга, но нет внешних ссылок) используется дополнительный алгоритм (generational GC). Он периодически проверяет такие объекты и удаляет их, если они недостижимы из корневых объектов (глобальных переменных, стека вызовов и т.д.).

Пример циклической ссылки:

python
class Node:
    def __init__(self):
        self.next = None

a = Node()
b = Node()
a.next = b
b.next = a  # Циклическая ссылка
a = b = None  # Теперь объекты недостижимы

GC обнаружит это в следующем цикле сборки мусора и освободит память. Можно ускорить процесс с помощью gc.collect().

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы