Встречается на 1% собеседований по Python
К чему приводят нюансы работы с памятью в Python
В Python управление памятью автоматизировано через механизм подсчёта ссылок и сборщик мусора. Однако есть нюансы:
- Циклические ссылки – объекты ссылаются друг на друга, но недоступны извне. Сборщик мусора (GC) их удаляет, но это требует дополнительных ресурсов.
python
a = []; b = []; a.append(b); b.append(a) # Циклическая ссылка
-
Изменяемые vs неизменяемые объекты – например,
+=для списков модифицирует объект, а для строк создаёт новый. -
Кэширование мелких объектов – целые числа от -5 до 256 и короткие строки кэшируются, что экономит память, но может ввести в заблуждение при сравнении через
is. -
Утечки памяти – например, незакрытые файлы или неучтённые ссылки в глобальных областях видимости.
Для контроля памяти можно использовать gc, sys.getrefcount() или профилировщики (tracemalloc, memory_profiler).
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы