← Назад ко всем вопросам

Какие области видимости есть в Python?

1️⃣ Как кратко ответить

В Python существуют четыре области видимости: локальная, вложенная, глобальная и встроенная. Локальная область видимости относится к переменным, определенным внутри функции. Вложенная область видимости касается переменных, определенных в функции, вложенной в другую функцию. Глобальная область видимости охватывает переменные, определенные на уровне модуля. Встроенная область видимости включает в себя встроенные функции и исключения Python.

2️⃣ Подробное объяснение темы

Области видимости в Python определяют, где переменные и функции могут быть доступны в коде. Это важно для управления доступом к данным и предотвращения конфликтов имен. В Python используется модель LEGB, которая расшифровывается как Local, Enclosed, Global, Built-in.

  • Локальная область видимости (Local Scope):
    Переменные, определенные внутри функции, имеют локальную область видимости. Они доступны только в пределах этой функции. Когда функция вызывается, создается новая локальная область видимости.

    def my_function():
        x = 10  # Локальная переменная
        print(x)
    ​
    my_function()  # Вывод: 10
    # print(x)  # Ошибка: переменная x не определена в глобальной области видимости
    

    В этом примере x — локальная переменная, доступная только внутри my_function.

  • Вложенная область видимости (Enclosed Scope):
    Переменные, определенные в функции, вложенной в другую функцию, имеют вложенную область видимости. Они доступны в пределах этой вложенной функции и всех функций, вложенных в нее.

    def outer_function():
        y = 20  # Переменная во вложенной области видимости
    ​
        def inner_function():
            print(y)  # Доступ к переменной y из внешней функции
    ​
        inner_function()
    ​
    outer_function()  # Вывод: 20
    

    Здесь y находится во вложенной области видимости и доступна в inner_function.

  • Глобальная область видимости (Global Scope):
    Переменные, определенные на уровне модуля, имеют глобальную область видимости. Они доступны во всем модуле, но не в других модулях, если не импортированы.

    z = 30  # Глобальная переменная
    ​
    def another_function():
        print(z)  # Доступ к глобальной переменной z
    ​
    another_function()  # Вывод: 30
    

    Переменная z доступна в любой функции в том же модуле.

  • Встроенная область видимости (Built-in Scope):
    Включает в себя все встроенные функции и исключения Python, такие как len(), print(), Exception и другие. Эти элементы доступны в любом месте программы.

    print(len("Hello"))  # Встроенные функции доступны в любом месте
    

    Здесь len и print — примеры встроенных функций.

Тема: Python
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки