如何在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: 5
Outside function: 5

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

更新于:2021年3月11日

4K+浏览量

启动您的职业生涯

完成课程获得认证

开始学习
广告