python函数教程:global 和 nonlocal的详细用法

1. global关键字

在Python中,我们可以使用global关键字来声明一个全局变量。当我们在函数内部使用一个变量时,Python会先在函数内部的局部作用域中查找该变量,如果找不到,就会再去全局作用域中查找。

如果想要在函数内部修改全局变量的值,我们需要使用global关键字来告诉Python,这个变量是全局变量。

1.1 global关键字的用法

使用global关键字的语法如下:

global variable_name

将需要修改的全局变量名放在global后面。

下面是一个示例:

temperature = 0.6

def change_temperature():

global temperature

temperature = 1.0

change_temperature()

print(temperature) # 输出结果为1.0

在上面的示例中,我们在函数内部使用global关键字来声明temperature这个全局变量,然后在函数内部修改了它的值,最后打印出来的结果是1.0。

2. nonlocal关键字

除了全局变量,Python还支持嵌套作用域(即函数中嵌套函数的情况)。在嵌套函数中,我们可以使用nonlocal关键字来声明一个非局部变量。

当我们在内层函数中使用一个变量时,Python会首先在内层函数的局部作用域中查找该变量,如果找不到,就会再去外层函数的作用域中查找,一直到全局作用域中。

如果要在内层函数中修改外层函数的变量,就需要使用nonlocal关键字。

2.1 nonlocal关键字的用法

使用nonlocal关键字的语法如下:

nonlocal variable_name

将需要修改的变量名放在nonlocal后面。

下面是一个示例:

def outer_function():

temperature = 0.6

def inner_function():

nonlocal temperature

temperature = 1.0

inner_function()

print(temperature) # 输出结果为1.0

outer_function()

在上面的示例中,我们在内层函数inner_function中使用nonlocal关键字来声明temperature这个变量,然后在内层函数中修改了它的值。最后,在外层函数outer_function中打印temperature的值,结果为1.0。

总结

通过使用global关键字和nonlocal关键字,我们可以在函数内部访问和修改外部作用域中的变量。需要注意的是,过度使用全局变量和非局部变量会让程序变得难以理解和维护,所以在编写代码时要注意变量的作用域。

后端开发标签