Пространство имен
Пространство имен (или namespace) в Python - это место, где хранятся имена переменных, функций, классов и других объектов. Каждый объект в Python находится в каком-то пространстве имен, и пространства имен используются для разделения и управления именами в программе. В Python существует несколько различных видов пространств имен:
Встроенное пространство имен (Built-in Namespace): В этом пространстве имен содержатся встроенные в Python имена, такие как
print()
,len()
,int()
,str()
и другие. Эти имена доступны из любой части программы без необходимости импортирования.Глобальное пространство имен (Global Namespace): Глобальное пространство имен создается, когда вы определяете переменные, функции или классы на верхнем уровне файла. Эти имена видны из любой части программы после их определения и доступны внутри функций.
Локальное пространство имен (Local Namespace): Локальное пространство имен создается при входе в функцию. В нем содержатся имена, определенные внутри функции, и они видны только внутри этой функции.
Пространства имен модулей (Module Namespace): Каждый модуль в Python имеет свое собственное пространство имен. Имена, определенные в модуле, видны только в этом модуле и могут быть доступны после импорта.
Пространства имен классов (Class Namespace): Каждый класс также имеет свое пространство имен для хранения атрибутов класса и методов.
Примеры использования пространств имен:
# Глобальное пространство имен
global_variable = 10
def my_function():
# Локальное пространство имен
local_variable = 5
print(global_variable) # Доступ к глобальной переменной
# Имена встроенных функций доступны из любого пространства имен
length = len("Hello")
# Пространство имен модуля
# Модуль mymodule.py
# Имя "module_variable" будет доступно после импорта модуля
module_variable = 42
# Пространство имен класса
class MyClass:
class_variable = 100
def __init__(self):
self.instance_variable = 50
# Доступ к именам в пространствах имен
obj = MyClass()
print(obj.class_variable) # Доступ к атрибуту класса
print(obj.instance_variable) # Доступ к атрибуту экземпляра
Last updated
Was this helpful?