Рубрики
Без рубрики

Переменные призывы в Python

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

Автор оригинала: Pankaj Kumar.

Переменные призывы в Python

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

Что такое область?

Область объема функции, класса или любой определенной пользовательской переменной является область кода, в которой ее можно получить доступ. Переменная, объявленная внутри функции, может быть доступна только в этой функции, а не за пределами функции, так что функция является объемом переменной.

Например, в следующем коде:

def funcx():
    x = 1
    print(x)
    return

def funcy():
    y = 2
    print(y)
    return

def funcz():
    z = 3
    print(z)
    return

Переменная х объявлен в funcx Итак, funcx это область для переменной. Точно так же объем y это Фунси и объем z это Фунцез Отказ

Понимание глобальных, местных и нелокальных вариабельных областей

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

1. Глобальная переменная область

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

x = 10
print(x)
def func():
    print(x)
    return

func()

Переменная х объявляется вне любой функции. Это означает, что его можно добраться в любом месте во всем коде. В приведенном выше примере х Доступна вне функции Func а также внутри Func Отказ

Выход:

Global: 10
Local: 10

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

2. Локальная переменная область

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

def func():
    x = 10
    print(x)

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

3. Нелокальная переменная область

Чтобы понять нелокальный объем, нам нужно привести пример:

def outer_func():
    x = 10
    print("Outside:", x)
    
    def inner_func():
        print("Inside:", x)
        return
    
    inner_func()
    return

outer_func()

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

Мы можем получить доступ к х от Inner_func как нелокальная переменная. И это выпуск:

Outside: 10
Inside: 10

Примечание: манипулирование х от Inner_func Это немного сложнее, и мы увидим, что когда мы обсудим нелокальное ключевое слово.

Манипулирование глобальными и нелокальными переменными

Мы видели, что мы можем получить доступ к глобальной и нелокальной переменной внутри функции, но если мы непосредственно пытаемся манипулировать этой переменной внутри функции, то это приведет к ошибке. Давайте увидим пример:

x = 10
def func():
    x += 1
    print(x)
    return

func()

Сейчас логически мы должны быть в состоянии увеличить х Поскольку это глобальная переменная и может быть доступна в любом месте, но это фактический выход:

---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
 in 
      5     return
      6 
----> 7 func()

 in func()
      1 x = 10
      2 def func():
----> 3     x += 1
      4     print(x)
      5     return

UnboundLocalError: local variable 'x' referenced before assignment

Это говорит, UnsoundLocalError: локальная переменная 'x' ссылается до назначения Отказ

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

Глобальное ключевое слово в Python

Чтобы избежать обсуждаемой ошибки, мы можем использовать глобальный Ключевое слово для глобальных переменных Scopes:

x = 10
def func():
    global x
    x += 1
    print(x)
    return

func()

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

11

Итак, он печатает модифицированное значение х этот раз.

Нелокальное ключевое слово в Python

Для нелокальных вариабельных областей мы будем использовать нелокальный Ключевое слово, чтобы избежать обсуждаемой ошибки следующим образом:

def outer_func():
    x = 10
    
    def inner_func():
        nonlocal x
        x += 1
        print(x)
    
    inner_func()
    return

outer_func()

Мы говорим Python, что х нелокальный внутри Inner_func функция. ( Global не будет работать, как X не глобал).

Выход:

11

Заключение

В этом уроке мы обсуждали, какие призывы в Python означает, что мы также обсуждали, какие глобальные, местные и нелокальные переменные есть и как их использовать. Мы прошли через использование двух ключевых слов: глобальный и нелокальный И мы увидели, что они работали в Python Code со своими выходами.