Область видимости Python
- Предыдущая страница Итерация Python
- Следующая страница Модули Python
Переменные доступны только в区域内 их создания. Это называется областью видимости.
Локальная область видимости
Переменные, созданные внутри функции,都属于 локальной области видимости этой функции и могут использоваться только внутри нее.
Пример
Внутри функции созданные переменные доступны только в этой функции:
def myfunc(): x = 100 print(x) myfunc()
Функция внутри функции
Как показано в примере выше, переменная x недоступна вне функции, но доступна для любой функции внутри функции:
Пример
Может получить доступ к локальной переменной из функции внутри функции:
def myfunc(): x = 100 def myinnerfunc(): print(x) myinnerfunc() myfunc()
Глобальный диапазон
Переменные, созданные в теле кода Python, являются глобальными и принадлежат глобальному диапазону.
Глобальные переменные доступны в любом диапазоне (глобальном и локальном).
Пример
Переменные, созданные вне функции, являются глобальными и могут быть использованы кем угодно:
x = 100 def myfunc(): print(x) myfunc() print(x)
Именованные переменные
Если внутри функции и снаружи работают с одноименными переменными, Python будет рассматривать их как два отдельных переменных, одна из которых доступна в глобальном диапазоне (снаружи функции), а другая в локальном диапазоне (внутри функции):
Пример
Эта функция будет распечатывать локальную переменную x, а затем код также будет распечатывать глобальную переменную x:
x = 100 def myfunc(): x = 200 print(x) myfunc() print(x)
Ключевое слово Global
Если нужно создать глобальную переменную, но вы застряли в локальном диапазоне, можно использовать ключевое слово global.
Ключевое слово global делает переменную глобальной.
Пример
Если используется ключевое слово global, то переменная принадлежит глобальному диапазону:
def myfunc(): global x x = 100 myfunc() print(x)
Кроме того, если нужно изменить глобальную переменную внутри функции, также используйте ключевое слово global.
Пример
Чтобы изменить значение глобальной переменной внутри функции, используйте ключевое слово global для обращения к этой переменной:
x = 100 def myfunc(): global x x = 200 myfunc() print(x)
- Предыдущая страница Итерация Python
- Следующая страница Модули Python