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

Как устроена память в Python

В Python управление памятью осуществляется через private heap (кучу), где хранятся все объекты. Менеджер памяти автоматически выделяет и освобождает память с помощью механизма подсчёта ссылок (reference counting) и сборщика мусора (garbage collector).

Ключевые аспекты:

  1. Reference Counting – каждый объект содержит счётчик ссылок. Когда он достигает нуля, память освобождается.
  2. Garbage Collector – решает проблему циклических ссылок (когда объекты ссылаются друг на друга, но внешних ссылок нет).
  3. Memory Pools – Python использует пулы для оптимизации выделения памяти под мелкие объекты (например, int, str).

Пример:

python
import sys
a = [1, 2, 3]  # Создаётся объект списка в куче
b = a          # Увеличивается счётчик ссылок объекта
print(sys.getrefcount(a))  # Выведет 3 (a, b + временная ссылка в getrefcount)
del b          # Счётчик уменьшается
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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