Пространство имен (namespace) в Python – это контейнер, в котором имена (например, переменные, функции, классы и т.д.) связываются с соответствующими объектами. Пространство имен определяет область видимости и доступности идентификаторов (имен) в вашей программе. Каждое имя существует в определенном пространстве имен, и Python использует пространства имен для организации и управления объектами в коде.
Python имеет несколько различных пространств имен, включая следующие основные типы:
- Пространство имен модуля: Это пространство имен, связанное с модулем (файлом с расширением
.py
). Все глобальные переменные, функции и классы, объявленные в модуле, находятся в его пространстве имен. - Локальное пространство имен функции: Каждая функция создает свое собственное локальное пространство имен, которое содержит аргументы функции и все переменные, объявленные внутри функции.
- Встроенное пространство имен: Это пространство имен, содержащее встроенные функции и объекты Python, такие как
print
,len
,str
и другие.
Пространства имен в Python образуют иерархическую структуру, в которой каждое вложенное пространство имеет доступ к объектам верхних уровней, но не наоборот. Если идентификатор (имя) не может быть найден в текущем пространстве имен, Python будет искать его в более высоких уровнях (поиск “вверх по дереву”).
Пример использования пространства имен:
python
x = 10 # Глобальное пространство имен модуля def my_function(): y = 20 # Локальное пространство имен функции print(x) # Имя x доступно из глобального пространства my_function() print(y) # Вызовет ошибку, так как y не доступно вне функции
Понимание пространств имен важно для правильного организации кода, избегания конфликтов и понимания области видимости и доступности идентификаторов.