Встречается на собеседованиях • сегодня
Как сборщик мусора работает с циклическими ссылками в Python
Python использует алгоритм подсчёта ссылок в сочетании с generational garbage collector (GC) для обработки циклических ссылок.
- Подсчёт ссылок: Каждый объект имеет счётчик ссылок. При удалении ссылки счётчик уменьшается. Когда он достигает 0, память освобождается.
- Циклические ссылки: Если два объекта ссылаются друг на друга, их счётчики никогда не станут 0.
- Generational GC: Python периодически запускает сборщик мусора, который обнаруживает недостижимые циклы (например, объекты, не связанные с корневыми ссылками).
Пример циклической ссылки:
python
class Node:
def __init__(self):
self.ref = None
a = Node()
b = Node()
a.ref = b # Создаём циклическую ссылку
b.ref = a
del a, b # Теперь объекты недостижимы, но ссылки осталисьGC обнаружит и удалит такие объекты при следующем проходе.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы