locals() возвращает отображение имён локальной области на значения. В функциях современных Python это снимок текущих привязок, а не надёжный способ изменить локальные переменные через словарь.
Что возвращает функция `locals()`?
locals() возвращает отображение имён локальной области на значения. В функциях современных Python это снимок текущих привязок, а не надёжный способ изменить локальные переменные через словарь.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
locals() возвращает отображение имён локальной области на значения. В функциях современных Python это снимок текущих привязок, а не надёжный способ изменить локальные переменные через словарь.
В Python 3.13+ поведение уточнено: в оптимизированных областях, например функции, каждый вызов даёт отдельный снимок; правка результата не переопределяет локальную переменную. На уровне модуля и тела класса правила отличаются, поскольку там используются реальные пространства имён. Не полагайтесь на старые особенности синхронизации локальных словарей CPython. Для динамических данных заведите собственный dict с явным контрактом.
Источник: github.com.