Python для новичковСтроки, модули и файлыИмпорт модулей стандартной библиотеки

Импорт модулей стандартной библиотеки

Уроки курсаИмпорт модулей стандартной библиотеки

Пространство имён и точечная нотация

После import math в вашей программе появляется имя math. Но что именно за ним стоит?

Представьте, что модуль — это ящик с инструментами. Внутри ящика лежат sqrt, pi, floor, ceil и ещё десятки вещей. Каждый инструмент подписан своим именем. Это и есть пространство имён модуля: отдельная область, в которой живут все имена, определённые в этом файле.

Когда вы пишете math.sqrt, вы буквально говорите: «возьми ящик math, открой его и достань оттуда sqrt». Точка — это оператор доступа к содержимому конкретного пространства имён.

Почему это важно? Представьте, что в вашем коде уже есть переменная с именем pi:

import math

pi = 3.14  # своя грубая константа

print(pi)       # 3.14 — ваша переменная
print(math.pi)  # 3.141592653589793 — константа из модуля

Оба имени существуют одновременно и не мешают друг другу. pi живёт в вашем коде, math.pi — в пространстве имён модуля. Точечная нотация явно указывает, из какого «ящика» брать имя.

Если бы Python просто вываливал все имена модуля прямо в ваш код при import math, такой манёвр был бы невозможен: одно из двух pi неизбежно перезаписало бы другое. Именно поэтому import math не делает sqrt и pi доступными напрямую — они остаются внутри своего пространства имён и требуют префикса.

Проверить, что вообще лежит в модуле, можно прямо в интерпретаторе:

import math
print(dir(math))

dir() вернёт список всех имён, определённых в math. Это удобнее, чем каждый раз открывать документацию, когда хочется вспомнить, есть ли там нужная функция.