Python global 关键字



Python 的 global 关键字允许我们修改当前作用域之外的变量。它是一个 区分大小写 的关键字。它用于创建 全局变量。在函数外部或全局作用域中声明的变量称为 全局 变量。

全局 变量可以在函数内部或外部访问。当我们在 if-else 语句内部使用 global 关键字时,它会导致 SyntaxError(语法错误)。

当我们在函数外部创建一个变量时,它默认是 全局 变量,不需要在它前面指定 global 关键字。我们使用 global 关键字在函数内部读取和写入全局变量。

用法

以下是 Python global 关键字的用法:

global variable_name

其中,variable_name 是我们需要声明为全局的变量的名称。

示例

以下是 Python global 关键字的基本示例:

var1 = 100
print("Variable before function :", var1)
def fun1():
    global var1
    var1 = 879
    print("Variable inside the function :",var1)    
fun1()
print("Variable outside the function :",var1)

输出

以下是上述代码的输出:

Variable before function : 100
Variable inside the function : 879
Variable outside the function : 879

在嵌套函数中使用 global 关键字

当我们在一个函数内部定义另一个函数时,称为 嵌套函数。我们也可以在嵌套函数内部使用 global 关键字。

示例

这里,我们定义了 嵌套函数,并在 fun2() 内部创建了全局变量。在 fun2 中,num 对 global 关键字没有影响。在调用 fun2() 之前和之后,num 都取局部变量的值,即 24。在 fun1() 外部,num 将取全局变量的值,即 100,因为我们在 num 中使用了 global 关键字在 fun2() 内部创建了一个全局变量,所以如果我们在 fun2() 内部进行任何更改,这些更改将出现在局部作用域(即 fun1())之外。

def fun1():
    num = 24
    def fun2():
        global num
        num = 100
    print("Before calling fun1(): ", num)
    fun2()
    print("After calling fun2(): ", num)
fun1()
print("num Variable Outside both function(): ", num)

输出

以下是上述代码的输出:

Before calling fun1():  24
After calling fun2():  24
num Variable Outside both function():  100

在 if-else 语句中使用 global 关键字

当在 if-else 内部使用 global 关键字时,它会引发 SyntaxError(语法错误)。

示例

下面是一个在if-else中使用global关键字的示例。

var1 = 80
if True:
    global var1
    var1 = 234
    print(var1)

输出

以下是上述代码的输出:

File "/home/cg/root/70237/main.py", line 3
    global var1
    ^^^^^^^^^^^
SyntaxError: name 'var1' is assigned to before global declaration
python_keywords.htm
广告