python的global和nonelocal
时间: 2024-04-14 09:27:49 浏览: 14
Python中的`global`和`nonlocal`是用来访问和修改变量作用域的关键字。
`global`关键字用于在函数内部访问和修改全局变量。当在函数内部使用一个与全局作用域中同名的变量时,默认情况下,Python会创建一个新的局部变量,并且不会修改全局变量。但是,如果你想要在函数内部修改全局变量,你可以使用`global`关键字来声明这个变量是全局变量,然后你就可以在函数内部对它进行修改。
下面是一个使用`global`关键字的例子:
```python
x = 10
def my_function():
global x
x = 20
my_function()
print(x) # 输出:20
```
在上面的例子中,我们在`my_function`函数内部使用了`global`关键字来声明变量`x`是全局变量,并且在函数内部对它进行了修改。因此,当我们在函数外部打印`x`的值时,它已经被修改为20。
另外,Python中还有一个关键字叫做`nonlocal`,它用于在嵌套函数中访问和修改外层(非全局)函数的变量。当在嵌套函数中使用一个与外层函数同名的变量时,默认情况下,Python会创建一个新的局部变量,并且不会修改外层函数中的变量。但是,如果你想要在嵌套函数内部修改外层函数的变量,你可以使用`nonlocal`关键字来声明这个变量是外层函数的变量,然后你就可以在嵌套函数内部对它进行修改。
下面是一个使用`nonlocal`关键字的例子:
```python
def outer_function():
x = 10
def inner_function():
nonlocal x
x = 20
inner_function()
print(x) # 输出:20
outer_function()
```
在上面的例子中,我们在`inner_function`函数内部使用了`nonlocal`关键字来声明变量`x`是外层函数的变量,并且在函数内部对它进行了修改。因此,当我们在外层函数中打印`x`的值时,它已经被修改为20。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)