Python全局变量是什么,如何更改全局变量值

在Python中,全局变量是一个比较直接但很重要的概念,在刚开始学习Python时,需要学习。

global-variables-in-python-thumbnail.jpg

在本篇Python教程中,我们将探讨Python中的全局变量是什么,以及你应该如何处理它们。

如果您正在开始使用Python,那么我们建议您从我的Python入门指南开始。在开始本指南之前,你应该首先对Python中的变量有一个基本的了解。如果您需要快速了解什么是 Python 中的变量,那么请务必关注我们的Python 中的变量指南。

在我们开始之前,你应该知道在Python中,有局部变量和全局变量。

局部变量是在函数中定义的变量,只有在函数运行时才能使用。当函数完成后,局部变量将从内存中删除,不再存在。

全局变量是在任何函数之外定义的变量。这些变量将一直存在,直到它们被删除或程序结束。

x = "labno3" #这是全局变量

def exampleFunction():
    b = "no3lab" #这是局部变量

上面的例子应该能让你快速了解一个变量何时可以被认为是全局的或局部的。

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

但是,在函数中使用全局变量有一个注意事项。

只要你试图在不使用全局关键字的情况下给全局变量赋值,这个值就会变成一个局部变量,全局变量就会被忽略。

成为局部变量后,只有函数本身可以访问它的值。因此,原来的全局变量的值不会被修改。

我们可以通过编写一个小脚本来观察这种行为,在这个脚本中,我们尝试在函数中改变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

然而,通过使用全局关键字,仍然可以在函数中修改一个全局变量。

在Python中使用global关键字

要想在函数中修改全局变量,必须首先使用global关键字。

这个关键字告诉Python,变量应该从全局空间而不是本地空间访问。

例如,如果我们把上一节中使用的脚本,在函数的开头添加全局的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

通过这个示例代码,你可以看到我们首先在exampleFunc()函数中创建x变量,然后在全局空间中使用print()访问这个相同的变量。

如果你在不使用global关键字的情况下这样做,你将会遇到一个错误,因为变量永远不会存在于我们的exampleFunc()函数之外。

然而,由于我们使用了全局,我们可以很容易地访问变量,因为x变量在全局空间中是可用的。

你应该从上面的示例代码中得到以下结果。

Learning from PiMyLifeUp

到此为止,您现在应该了解了 Python 中局部变量和全局变量的区别。你现在应该知道如何在函数中使用全局变量,并知道如何使用global关键字来修改它们。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Python全局变量是什么,如何更改全局变量值

赞 (1)

评论

9+7=