如何在Python中声明全局变量?

什么是全局变量?

全局变量是在函数外部声明的变量,但我们需要在函数内部使用它。

例子

def func():
   print(a)
a=10
func()

输出

10

在这里,变量a是全局的。由于它是在函数外部声明的,因此也可以在函数内部使用。因此,变量a的范围是全局的。

如果在函数内部创建与全局变量同名的变量,将会看到会发生什么。

在上面的示例中,变量a在函数外部声明,因此是全局变量。

如果我们在函数内声明另一个具有相同名称的变量,并带有另一个值。该变量将充当函数的局部变量,并且其范围将限于函数内部。在函数外部,全局变量将保留其原始值。

借助示例可以更好地理解它。

例子

a=10
def func():
   a=5
print("内部功能:",a)
func()
print("外部功能:",a)

输出

内部功能: 5
外部功能: 10

在上面的示例中,a是全局变量,其值为10。稍后func()调用。

在内部func(),另一个变量a声明为具有不同值,其范围仅限于函数内部。因此,当稍后在函数外部打印a的值时,它带有与全局变量相同的原始值10。

关键字:全球

当您需要在函数内部声明全局变量时,可以使用关键字global。

在函数内部声明的普通变量的作用域仅到函数结束为止。

但是,如果还要在函数外部使用变量,则在声明变量时使用global关键字。

在示例实现的帮助下了解两者之间的区别。

例子

def func():
   a=5
   print("内部功能:",a)
func()
print("外部功能:",a)

输出

内部功能: 5
Traceback (most recent call last):
print("外部功能:",a)
NameError: name 'a' is not defined

在上面的示例中,a的值不能在函数外部访问,因为它是局部变量。因此,访问外部函数的值将引发异常。

使用全局关键字

如果我们使用关键字global声明变量a,则可以解决上述示例中引发的异常。

例子

def func():
   global a
   a=5
   print("内部功能:",a)
func()
print("外部功能:",a)

输出

内部功能: 5
外部功能: 5

在上面的示例中,变量a是全局变量,因此也可以在函数外部访问其值。