如何在Python中声明全局变量?
什么是全局变量?
全局变量是在函数外部声明的变量,但我们需要在函数内部使用它。
示例
def func():
print(a)
a=10
func()
输出
10
在此例中,变量a是全局的。因为它在函数外部声明,并且也可以在函数内部使用。因此,变量a的范围是全局的。
我们将看到如果我们在函数内部创建同名的全局变量会发生什么。
在上述示例中,变量a在函数外部声明,因此为全局变量。
如果我们在函数内部声明另一个同名变量,其值为其他值。那么该变量将作为函数的局部变量,其作用范围将仅限于函数内部。在函数外部,全局变量将保持其原始值。
可以通过以下示例更好地理解。
示例
a=10
def func():
a=5
print("Inside function:",a)
func()
print("Outside function:",a)
输出
Inside function: 5
Outside function: 10
在上述示例中,a是全局变量,其值为10。随后调用func()。
在func()中,声明了另一个具有不同值的变量a,其作用范围仅限于函数内部。因此,稍后在函数外部打印a的值时,它将保持原始全局变量的相同值10。
关键字:global
关键字global用于在函数内部声明全局变量时使用。
在函数内部声明的普通变量的作用范围仅限于函数的末尾。
但是,如果您还想在函数外部使用变量,请在声明变量时使用global关键字。
使用示例实现了解两者之间的区别。
示例
def func():
a=5
print("Inside function:",a)
func()
print("Outside function:",a)
输出
Inside function: 5
Traceback (most recent call last):
print("Outside function:",a)
NameError: name 'a' is not defined
在上述示例中,由于a是局部变量,因此无法在函数外部访问其值。因此,访问超出函数的值将引发异常。
使用global关键字
在上述示例中引发的异常可以通过使用关键字global来声明变量a来解决。
示例
def func():
global a
a=5
print("Inside function:",a)
func()
print("Outside function:",a)
输出
Inside function: 5Outside function: 5
在上述示例中,变量a是全局的,因此其值也可以在函数外部访问。