W3docs

Область видимости в Python

Python scope refers to the rules that govern how variables and functions are accessed within a Python program. The scope of a variable or function determines

Понимание области видимости в Python

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

Локальная область видимости

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


graph TD;
    A(Function) --> B(Local Scope)

Вложенная область видимости

Вложенная область видимости относится к переменным, определённым во внешней функции. К этим переменным могут обращаться функции, вложенные во внешнюю функцию. Вложенная область видимости полезна для создания замыканий — функций, которые запоминают значения переменных своей внешней функции.


graph TD;
    A(Enclosing Function) --> B(Inner Function)
    B --> C(Enclosing Scope)

Глобальная область видимости

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


graph TD;
    A(Global Scope)
    B(Function) --> A

Встроенная область видимости

Встроенная область видимости относится к переменным и функциям, которые встроены в сам Python. Эти переменные и функции доступны из любой части программы. К встроенной области видимости относятся функции, такие как print() и len().


graph TD;
    A(Built-in Scope)

Использование области видимости в Python

Теперь, когда вы понимаете различные уровни области видимости в Python, давайте посмотрим, как использовать их в своих программах.

Определение локальных переменных

Чтобы определить локальную переменную в Python, достаточно просто присвоить ей значение внутри функции:

Определение локальной переменной внутри функции на Python

def my_function():
    x = 1  # x is a local variable

Доступ к переменным внешней функции

Чтобы получить доступ к переменной из внешней функции, можно использовать ключевое слово nonlocal:

Доступ к переменной из внешней функции на Python

def outer_function():
    x = "outer"

    def inner_function():
        nonlocal x
        x = "inner"

    inner_function()
    print(x)  # Output: inner

Определение глобальных переменных

Чтобы определить глобальную переменную в Python, используйте ключевое слово global:

Доступ к глобальным переменным внутри функции на Python

global_var = 1  # global variable

def my_function():
    global global_var
    global_var += 1
    print(global_var)  # Output: 2

Использование встроенных функций

Встроенные функции можно использовать в любом месте программы:

Использование встроенных функций в Python в любом месте

x = [1, 2, 3]
print(len(x))  # Output: 3

Заключение

Область видимости в Python — это важная концепция, которую должен понимать каждый программист на Python. Эффективно используя локальную, вложенную, глобальную и встроенную области видимости, вы сможете писать эффективные, поддерживаемые и легко читаемые программы. В этой статье мы предоставили полный и подробный обзор области видимости в Python, охватывающий её различные уровни и способы их эффективного использования в ваших программах.

Практика

Практика

Каковы четыре типа областей видимости в Python в порядке их проверки?