Python global关键字的用法
在Python中,global
是一个关键字,用于声明全局变量。使用global
关键字可以在函数内部改变全局变量的值或者创建新的全局变量。本文将详细介绍global
关键字的用法,并提供一些示例代码进行演示。
1. global
关键字的基本用法
在Python中,当我们在函数内部使用一个变量时,默认情况下该变量是局部变量,只在函数内部有效。如果想要在函数内部修改全局变量的值,或者在函数内部创建一个新的全局变量,就需要使用global
关键字。
下面是global
关键字的基本语法:
global variable_name
其中,variable_name
是一个全局变量的名称。使用global
关键字后,函数内部的变量就会与该全局变量绑定。
2. 在函数内部修改全局变量的值
使用global
关键字可以在函数内部修改全局变量的值。在函数内部,可以通过<variable_name> = <new_value>
的方式为全局变量赋新值。
下面是一个示例代码:
x = 10
def modify_global_variable():
global x
x = 20
print("Before function call, x =", x)
modify_global_variable()
print("After function call, x =", x)
输出结果为:
Before function call, x = 10
After function call, x = 20
在这个例子中,我们首先定义了一个全局变量x
,并赋值为10。然后定义了一个函数modify_global_variable
,该函数使用了global
关键字来声明变量x
为全局变量。在函数内部,我们将全局变量x
的值修改为20。最后,在函数调用后,我们打印出变量x
的值,可以看到全局变量x
的值已经被成功修改。
需要注意的是,在使用global
关键字声明全局变量之前,不能对该变量进行赋值操作,否则会引发UnboundLocalError
。例如,下面的代码会报错:
def modify_global_variable():
print(x) # 引发UnboundLocalError
global x
x = 20
3. 在函数内部创建新的全局变量
除了可以修改全局变量的值,使用global
关键字还可以在函数内部创建新的全局变量。在函数内部,可以通过<variable_name> = <value>
的方式创建新的全局变量。
下面是一个示例代码:
def create_global_variable():
global y
y = 30
create_global_variable()
print(y)
输出结果为:
30
在这个例子中,我们定义了一个函数create_global_variable
,该函数使用了global
关键字来声明变量y
为全局变量,并将其赋值为30。然后,在函数调用后,我们打印出变量y
的值,可以看到全局变量y
已经成功创建并赋值。
需要注意的是,在使用global
关键字声明全局变量之前,不能直接使用该变量,否则会引发UnboundLocalError
。例如,下面的代码会报错:
def create_global_variable():
print(y) # 引发UnboundLocalError
global y
y = 30
4. 在嵌套函数中使用global关键字
在Python中,我们还可以在嵌套函数中使用global
关键字,修改或者创建全局变量。如果在嵌套函数中使用global
关键字声明了一个全局变量,那么该变量会被绑定到最近的一层父函数或者全局作用域中。
下面是一个示例代码:
def outer_function():
x = 10
def inner_function():
global x
x = 20
print("Before inner function call, x =", x)
inner_function()
print("After inner function call, x =", x)
print("Before outer function call, x =", x)
outer_function()
print("After outer function call, x =", x)
输出结果为:
Before outer function call, x = 10
Before inner function call, x = 10
After inner function call, x = 20
After outer function call, x = 20
在这个例子中,我们定义了一个嵌套函数outer_function
,其中包括一个局部变量x
,并赋值为10。在outer_function
中,我们定义了一个嵌套函数inner_function
,在该函数中使用了global
关键字来声明变量x
为全局变量,并将其赋值为20。在函数调用过程中,我们打印出变量x
的值,可以看到在内部函数调用后,全局变量x
的值已经被成功修改。
5. 总结
在Python中,global
关键字允许在函数内部修改全局变量的值或者创建新的全局变量。使用global
关键字声明的全局变量可以在函数内部和外部访问。需要注意的是,在使用global
关键字声明全局变量之前,不能对该变量进行赋值操作,否则会引发UnboundLocalError
。另外,当在嵌套函数中使用global
关键字声明全局变量时,该变量会被绑定到最近的一层父函数或者全局作用域中。