Объем Python
Переменная доступна только внутри области, в которой она создана. Это называется размахом .
Локальная область
Переменная, созданная внутри функции, принадлежит к локальной области действия этой функции и может использоваться только внутри этой функции.
Пример
Переменная, созданная внутри функции, доступна внутри этой функции:
def myfunc():
x = 300
print(x)
myfunc()
Функция внутри функции
Как объяснено в примере выше, переменная x
недоступна вне функции, но доступна для любой функции внутри функции:
Пример
Доступ к локальной переменной можно получить из функции внутри функции:
def myfunc():
x = 300
def myinnerfunc():
print(x)
myinnerfunc()
myfunc()
Глобальный масштаб
Переменная, созданная в основной части кода Python, является глобальной переменной и принадлежит глобальной области видимости.
Глобальные переменные доступны из любой области видимости, глобальной и локальной.
Пример
Переменная, созданная вне функции, является глобальной и может использоваться кем угодно:
x = 300
def myfunc():
print(x)
myfunc()
print(x)
Именование переменных
Если вы работаете с одним и тем же именем переменной внутри и вне функции, Python будет рассматривать их как две отдельные переменные, одна из которых доступна в глобальной области видимости (вне функции), а другая — в локальной области видимости (внутри функции):
Пример
Функция напечатает локальную x
, а затем код напечатает глобальную x
:
x = 300
def myfunc():
x = 200
print(x)
myfunc()
print(x)
Глобальное ключевое слово
Если вам нужно создать глобальную переменную, но вы застряли в локальной области, вы можете использовать
global
ключевое слово.
Ключевое global
слово делает переменную глобальной.
Пример
Если вы используете global
ключевое слово, переменная принадлежит глобальной области видимости:
def myfunc():
global x
x = 300
myfunc()
print(x)
Кроме того, используйте global
ключевое слово, если вы хотите внести изменения в глобальную переменную внутри функции.
Пример
Чтобы изменить значение глобальной переменной внутри функции, обратитесь к переменной с помощью global
ключевого слова:
x = 300
def myfunc():
global x
x = 200
myfunc()
print(x)