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

К чему приводят нюансы работы с памятью в Python

В Python управление памятью автоматизировано через механизм подсчёта ссылок и сборщик мусора. Однако есть нюансы:

  1. Циклические ссылки – объекты ссылаются друг на друга, но недоступны извне. Сборщик мусора (GC) их удаляет, но это требует дополнительных ресурсов.
    python
    a = []; b = []; a.append(b); b.append(a)  # Циклическая ссылка
  1. Изменяемые vs неизменяемые объекты – например, += для списков модифицирует объект, а для строк создаёт новый.

  2. Кэширование мелких объектов – целые числа от -5 до 256 и короткие строки кэшируются, что экономит память, но может ввести в заблуждение при сравнении через is.

  3. Утечки памяти – например, незакрытые файлы или неучтённые ссылки в глобальных областях видимости.

Для контроля памяти можно использовать gc, sys.getrefcount() или профилировщики (tracemalloc, memory_profiler).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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