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

Что такое циклическая ссылка

Циклическая ссылка возникает, когда объекты ссылаются друг на друга напрямую или через цепочку других объектов, образуя цикл. Это может привести к утечкам памяти, так как сборщик мусора Python (использующий подсчёт ссылок) не сможет корректно удалить такие объекты.

Пример:

python
a = []
b = [a]
a.append(b)  # Теперь a содержит b, который содержит a

Для обнаружения циклических ссылок можно использовать модуль gc:

python
import gc
gc.collect()  # Принудительный сбор мусора
print(gc.garbage)  # Покажет неудаляемые объекты с циклами

Чтобы избежать проблем:

  1. Используйте слабые ссылки (weakref) для связей, которые не должны препятствовать удалению объектов
  2. Явно разрывайте циклические ссылки, когда они больше не нужны (del a[0])
  3. Для сложных структур данных рассмотрите использование __del__ с осторожностью
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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