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

Как в Python решается проблема циклических ссылок

В Python для решения проблемы циклических ссылок используется сборщик мусора (GC), который умеет обнаруживать и удалять циклические зависимости. Основной механизм — подсчёт ссылок (reference counting) дополненный алгоритмом generational GC для обнаружения циклов.

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

python
a = []
b = [a]
a.append(b)  # Теперь a ссылается на b, а b на a

Для работы с циклическими ссылками можно:

  1. Использовать weakref для слабых ссылок:
python
import weakref
a = []
b = weakref.ref(a)
  1. Вручную разрывать циклы перед удалением объектов:
python
del a[:]  # очищаем список
  1. Полагаться на автоматический GC, который периодически запускает сборку мусора:
python
import gc
gc.collect()  # принудительный вызов сборщика
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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