Автор оригинала: 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 со своими выходами.