Python global
和 nonlocal
用法解析
在Python中,global
和 nonlocal
是用来访问和修改变量作用域的关键字。它们允许我们在函数内部访问和修改在函数外部定义的变量。下面我们将详细讲解这两个关键字的用法。
global
关键字
global
关键字用于在函数内部访问和修改全局变量。当我们在函数内部使用一个变量时,默认情况下,Python会创建一个新的局部变量,而不是修改全局变量。但是,如果我们希望在函数内部修改全局变量,就需要使用 global
关键字。
下面是一个示例,演示了如何使用 global
关键字:
x = 10
def modify_global_variable():
global x
x = 20
print(x) # 输出 10
modify_global_variable()
print(x) # 输出 20
在上面的示例中,我们首先定义了一个全局变量 x
,并将其初始化为 10。然后,我们定义了一个函数 modify_global_variable()
,在函数内部使用 global
关键字声明了变量 x
是一个全局变量。接下来,我们调用函数 modify_global_variable()
,并打印变量 x
的值。在函数内部,我们将变量 x
的值修改为 20。最后,我们再次打印变量 x
的值,发现它已经被成功修改为 20。
nonlocal
关键字
nonlocal
关键字用于在嵌套函数中访问和修改非局部(nonlocal)变量。当我们在一个函数内部定义了另一个函数时,内部函数可以访问外部函数的变量。但是,默认情况下,内部函数只能访问外部函数的变量,而不能修改它们。如果我们希望在内部函数中修改外部函数的变量,就需要使用 nonlocal
关键字。
下面是一个示例,演示了如何使用 nonlocal
关键字:
def outer_function():
x = 10
def inner_function():
nonlocal x
x = 20
inner_function()
print(x) # 输出 20
outer_function()
在上面的示例中,我们定义了一个外部函数 outer_function()
,在函数内部定义了一个变量 x
,并将其初始化为 10。然后,我们定义了一个内部函数 inner_function()
,在函数内部使用 nonlocal
关键字声明了变量 x
是一个非局部变量。接下来,我们调用内部函数 inner_function()
,并打印变量 x
的值。在内部函数中,我们将变量 x
的值修改为 20。最后,我们再次打印变量 x
的值,发现它已经被成功修改为 20。
总结:
global
关键字用于在函数内部访问和修改全局变量。nonlocal
关键字用于在嵌套函数内部访问和修改非局部变量。
希望这个攻略对你有帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python global和nonlocal用法解析 - Python技术站