Что такое область имён (namespace)
Область имён — это «пространство», где живут имена переменных и функций. Благодаря ему одинаковые имена не мешают друг другу.
Зачем нужны пространства имён
В программе много имён, и они легко бы конфликтовали. Область имён разделяет их по «комнатам»: имя внутри функции живёт в своей комнате, имя в модуле — в своей. Поэтому переменная x в одной функции не мешает x в другой.
Разные уровни
Есть локальная область (внутри функции), глобальная (внутри модуля-файла) и встроенная (сами функции Python вроде print). Python ищет имя от ближней области к дальней: сначала локальную, потом глобальную, потом встроенную.
Связь с модулями
Каждый модуль — своё пространство имён. Поэтому math.pi и your_module.pi не конфликтуют: имя pi живёт внутри своего модуля. Обращение через точку (модуль.имя) — как раз указание нужной «комнаты».
Частые вопросы
Почему одинаковые имена не конфликтуют? Они в разных областях имён — «комнатах».
Как Python выбирает нужное имя? Ищет от локальной области к глобальной и встроенной.
Начать игру бесплатно