如何在 Python 中声明全局变量

2024 年 8 月 29 日 | 5 分钟阅读

在本教程中,我们将学习如何在 Python 程序中声明全局变量。

什么是全局变量?

全局变量是可以在任何函数内外都可以访问的变量,前提是它们是在函数外部定义的,属于全局作用域。让我们探索一下全局变量的创建。

在本例中,我们将定义并访问一个全局变量。

示例

输出

Inside the defined function the string is:  Declaring the Global Variable
Outside the defined function the string is:  Declaring the Global Variable

访问全局变量

变量 `var` 在函数 `func()` 内部和外部都可以访问,由于它是在全局作用域中声明的,因此被指定为全局变量。

由于我们没有创建局部变量,因此将应用全局变量的值;但是,我们必须确保局部变量和全局变量的名称匹配。

如果一个变量在全局和定义在一个函数内部具有相同的标识符,会发生什么?如果我们修改函数 `func()` 中变量的值会发生什么?问题是修改局部变量是否会改变全局变量,反之亦然,修改全局变量是否会改变局部变量。下面的代码示例用于评估它

示例

输出

The local scope variable is: Global Variable
The local scope variable is: I am leaning Python

假设一个变量,其名称与全局作用域中的变量名称相同,在函数的局部作用域内声明。在这种情况下,它将只显示定义在函数内的值,而不是全局值。

在局部作用域内更改全局变量

如果我们尝试在函数内部更改全局作用域中定义的变量的值,会发生什么?让我们通过下面的示例来检查它。

示例

输出

      4 def func():
----> 5     var = var + "Global Variable"
      6     print( "Inside the defined function", var )

UnboundLocalError: local variable 'var' referenced before assignment

我们必须为前面的应用程序包含 "global" Python 关键字才能运行。现在让我们学习全局变量。

Global 关键字

当在函数内部为全局作用域中声明的变量赋值或更改它们的值时,我们必须使用 Python 的 `global` 关键字。显示或访问全局作用域变量不需要此关键字。由于我们在函数 `func()` 内部声明了 `var`,Python 解释器“假设”我们想要一个局部变量,这就是为什么第一句话会引发错误。如果在函数内部修改或声明了一个变量,而没有使用 `global` 关键字声明它为全局变量,那么它将被视为局部变量。下面的示例演示了如何使用 "global" 关键字来指示 Python 解释器我们希望访问全局变量。

示例

输出

Inside the defined function:  Python Tutorial Global Variable
Outside the function:  Python Tutorial Global Variable

显示局部变量和全局变量用法的示例

示例

输出

global value of variable:  10
Inside the first function:  10
global value of variable:  10
Inside the second function:  15
global value of variable:  10
Inside the third function:  13
global value of variable:  13