python 函数更改外层函数的变量
时间: 2023-12-09 20:04:05 浏览: 116
在Python中,如果一个函数想要修改外层函数的变量,可以使用nonlocal关键字进行声明。nonlocal关键字可以将一个变量标记为非局部变量,即在内部函数中操作外部函数的变量。这个关键字在Python 3之后引入。当函数内部重新赋值一个和外层变量名称相同的变量时,这个变量会成为本地变量,会掩盖外层变量。但是如果在函数范围之外引用这个变量,会恢复外层变量的值。如果想要在函数内部修改全局变量,可以使用global关键字进行声明。使用global关键字声明后,可以在函数内部修改全局变量的值。另外,如果内层函数想要修改上一层作用域的变量,可以使用nonlocal关键字进行声明。nonlocal关键字可以修饰内层函数中的变量,使其可以修改上一层函数的变量。需要注意的是,修改的变量必须已经存在,并且不能修饰全局变量。如果上一层函数中不存在该变量,则修饰为上上一层直到顶层,但是不会修改全局变量的值。
#### 引用[.reference_title]
- *1* [python关于函数和嵌套函数中的外层变量在内层操作(如何在函数内操作全局变量,或如何在内层函数操作外层...](https://blog.csdn.net/Fsw__/article/details/127722682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Python函数学习_变量作用域](https://blog.csdn.net/hyc457427412hychyc/article/details/115153884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文