在内部函数中要改变外部函数中的变量, 不要在内部函数内部重新定义
时间: 2024-04-10 17:35:02 浏览: 54
要在内部函数中修改外部函数中的变量,可以使用`nonlocal`关键字。`nonlocal`关键字用于指示变量是外部函数中定义的,而不是重新在内部函数中定义。下面是一个示例代码:
```python
def outer_function():
x = 10
def inner_function():
nonlocal x
x = 20
inner_function()
print("修改后的 x 值:", x)
outer_function()
```
在上述代码中,我们定义了一个外部函数`outer_function`,并在其中定义了变量`x`并赋值为10。
然后,我们定义了内部函数`inner_function`,并在其中使用`nonlocal x`声明,指示`x`是在外部函数中定义的。
在内部函数中,我们将`x`的值修改为20。
最后,我们调用内部函数`inner_function`,并在外部函数中打印修改后的`x`值。
输出结果将是:"修改后的 x 值:20"。
使用`nonlocal`关键字可以让内部函数访问和修改外部函数中的变量,而不是在内部函数中重新定义一个新的同名变量。
阅读全文