Каков точный алгоритм работы кеширования малых целых чисел (Small Integer Caching) и интернирования строк?

В CPython малые целые и некоторые строки могут переиспользовать готовые объекты, но это детали реализации. Для точного алгоритма нужны версия, сборка и способ создания значения.

Короткий ответ

Что ответить на собеседовании

В CPython малые целые и некоторые строки могут переиспользовать готовые объекты, но это детали реализации. Для точного алгоритма нужны версия, сборка и способ создания значения.

Подробный разбор

Ответ с пояснениями

В CPython малые целые и некоторые строки могут переиспользовать готовые объекты, но это детали реализации. Для точного алгоритма нужны версия, сборка и способ создания значения.

В CPython 3.14 предсозданы объекты целых от −5 до 256: соответствующие пути создания возвращают ссылку на готовый объект вместо нового выделения. Интернирование строк канонизирует одинаковые значения; явно его запрашивают через sys.intern, а часть имён и литералов обрабатывается автоматически. Это не означает интернирование всех строк или одинаковое поведение разных интерпретаторов. Дополнительное объединение констант компилятором может влиять на эксперименты с is. Значения сравнивают через ==; точные внутренние таблицы и правила проверяют по исходникам выбранной версии.

Источник: github.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее