Пространство имен

1. Что такое пространство имён

  • Пространство имён — это контейнер, который сопоставляет имена переменных с объектами (значениями).

  • Оно отвечает за видимость и область действия переменных.

В Python есть несколько уровней пространства имён:

Уровень
Где находится
Пример поиска

Local (локальное)

Внутри функции или метода

Переменные внутри функции

Enclosing (вложенное)

Внутри внешней функции (если есть вложенные функции)

Замыкания (closures)

Global (глобальное)

На уровне модуля

Переменные в файле Python

Built-in (встроенное)

Встроенные функции и объекты Python (len, print)

Python standard library


2. Пример

x = "глобальная переменная"

def outer():
    x = "внешняя переменная"
    def inner():
        x = "локальная переменная"
        print(x)  # ищет сначала локальное пространство
    inner()
    print(x)  # внешнее пространство
outer()
print(x)      # глобальное пространство

Вывод:


3. Ключевые моменты

  1. global — позволяет использовать и изменять глобальную переменную внутри функции:

  1. nonlocal — позволяет изменять переменную из внешней функции:


4. Применение в автотестах

  • Фикстуры и конфигурации тестов — глобальные переменные или параметры модуля.

  • Локальные переменные в функциях теста — чтобы не влиять на другие тесты.

  • Избежание конфликтов имён — важно в больших проектах, когда много тестовых модулей.


💡 Вывод:

  • Пространства имён — это способ управлять видимостью переменных.

  • Python использует LEGB-последовательность для поиска значения переменной.

  • global и nonlocal позволяют явно управлять областями видимости.

Last updated

Was this helpful?