Встречается на собеседованиях • сегодня
Может ли сборщик мусора (Garbage collector) удалить нужные объекты в Python
В Python сборщик мусора (GC) использует подсчёт ссылок и циклический сборщик для управления памятью. Обычно он не удаляет нужные объекты, так как объект удаляется только когда количество ссылок на него становится нулевым. Однако есть нюансы:
- Циклические ссылки — GC может корректно удалить объекты, участвующие в циклах, если они недостижимы извне.
- Слабые ссылки (
weakref) — если объект удерживается только слабой ссылкой, GC может его удалить. __del__и неожиданное поведение — если в__del__есть сложная логика, это может помешать сборке мусора.
Пример циклической ссылки:
python
class Node:
def __init__(self):
self.ref = None
a = Node()
b = Node()
a.ref = b
b.ref = a # Циклическая ссылка
del a, b # GC удалит их, так как они недостижимы
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы