|
Глобальные переменные в Python
В этом руководстве по Python мы исследуем, что такое глобальные переменные в Python и как с ними обращаться. Прежде чем приступить к работе с этим руководством, вы должны сначала получить базовое представление о том, что такое переменная в Python. Прежде чем мы начнем, вы должны знать, что в Python есть как локальные, так и глобальные переменные.
Локальные переменные - это переменные, которые определены внутри функции и доступны только этой функции во время ее выполнения.
Когда функция завершится, локальная переменная будет удалена из памяти и перестанет существовать.
Глобальные переменные - это переменные, которые были определены вне какой-либо функции. Эти переменные будут существовать до тех пор, пока они не будут удалены или пока программа не завершится.
x = "pimylifeup" #This is a Global variable
def exampleFunction():
b = "uplifemypi" #This is a Local variable
Приведенный выше пример должен дать вам быстрое представление о том, когда переменную можно считать глобальной или локальной .
Глобальные переменные Python
В Python все переменные, созданные вне функции, считаются находящимися в « глобальном » пространстве.
Все, что находится в сценарии, может получить доступ к этим глобальным переменным, включая код внутри функций вашего сценария. Ниже у нас есть пример доступа к глобальной переменной из функции и распечатки ее значения.
x = "PiMyLifeUp" #This is in the global space
def exampleFunc():
print("Learning from " + x) #We access the global version of x
exampleFunc()
В этом примере вы можете видеть, что мы получаем доступ к нашей глобальной переменной xиз функции и выводим ее значение.
Learning from PiMyLifeUp
Однако есть предостережение относительно использования глобальных переменных в функциях. Как только вы пытаетесь присвоить значение глобальной переменной без использования ключевого слова global, это значение становится локальной переменной, а глобальная переменная игнорируется. Став локальной переменной, только сама функция может получить доступ к ее значению. Поэтому исходное значение глобальных переменных не изменяется. Мы можем наблюдать это поведение, написав небольшой скрипт, в котором мы пытаемся изменить значение xвнутри функции.
x = "PiMyLifeUp" #This is in the global space
def exampleFunc():
x = "UpLifeMyPi" #This is in the local space now
print("Learning from " + x) #As we set x locally, we access its local version
exampleFunc()
print("Learning from " + x)
После запуска этого кода вы заметите, что обе print()функции, как и ожидалось, выдали разные значения.
Learning from UpLifeMyPi
Learning from PiMyLifeUp
Однако возможно изменить глобальную переменную внутри функции, используя globalключевое слово.
Использование глобального ключевого слова в Python
Чтобы иметь возможность изменять глобальные переменные внутри функции, вы должны сначала использовать globalключевое слово. Это ключевое слово сообщает Python, что к переменной следует обращаться из глобального пространства, а не из локального. Например, если мы возьмем сценарий, который мы использовали в предыдущем разделе, и добавим global xего в начало функции, вы увидите, что значение xтеперь изменено в глобальном пространстве.
x = "PiMyLifeUp" #This is in the global space
def exampleFunc():
global x #Use x from the global space
x = "UpLifeMyPi" #Change our global x
print("Learning from " + x) #Print out the global x value
exampleFunc()
print("Learning from " + x)#Print out the global x value again
Как видно из результата этой функции, обе print()функции теперь возвращают одно и то же значение. Этот результат связан с тем, что мы использовали globalключевое слово и теперь изменяем значение глобальных переменных внутри функции, а не создаем новую локальную переменную.
Learning from UpLifeMyPi
Learning from UpLifeMyPi
Используя ключевое слово global внутри функции, вы также можете определять новые глобальные переменные. Хотя это обычно не рекомендуется, это можно сделать довольно легко. Все, что вам нужно сделать, это использовать globalключевое слово, как мы делали это ранее в примере кода. Переменная автоматически создается в глобальной области видимости, как только ей присваивается значение.
def exampleFunc():
global x #Use x from the global space
x = "PiMyLifeUp" #Set the value of the global x variable
exampleFunc()
print("Learning from " + x)#Print out the value of the global x value
В этом примере кода вы можете видеть, что мы сначала создаем нашу xпеременную в нашей exampleFunc()функции, а затем получаем доступ к этой же переменной, используя print()в глобальном пространстве. Если вы сделаете это без использования globalключевого слова, вы столкнетесь с ошибкой, поскольку переменная никогда не будет существовать вне нашей exampleFunc()функции. Однако, благодаря нашему использованию global, мы можем легко получить доступ к переменной, поскольку xпеременная становится доступной в глобальном пространстве. Вы должны получить следующий результат из приведенного выше примера кода.
Learning from PiMyLifeUp
На этом этапе вы должны понимать разницу между локальной и глобальной переменной в Python.