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

Какой механизм есть у Garbage Collector для удаления мусора внутри объектов

В Python Garbage Collector (GC) использует механизм подсчёта ссылок (reference counting) в сочетании с алгоритмом generational garbage collection для обнаружения и удаления циклических ссылок.

Для объектов с циклическими ссылками (когда ссылки образуют замкнутый круг) GC использует поколения (generations):

  1. Новые объекты попадают в поколение 0
  2. Если объект переживает сборку мусора, он перемещается в следующее поколение (1 или 2)
  3. 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:

python
import gc
gc.collect()  # Принудительный сбор мусора

GC автоматически удалит циклические ссылки, но для ресурсоёмких объектов лучше явно закрывать/освобождать ресурсы (например, через __del__ или контекстные менеджеры).

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

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

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

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