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