当前位置: 首页 > 后端技术 > Python

python中的nonlocal

时间:2023-03-26 17:36:06 Python

第一次在闭包中遇到nonlocal。在闭包中修改自由变量(不可变)的值时,需要声明为nonlocal,才能正常使用。当时有一个疑问:nonlocal和global有什么区别?经过进一步研究,我得到了答案:函数中使用了nonlocal,当子函数修改父函数定义的变量时;global是模块级变量,如果在函数中修改了它的值,需要用global声明。简而言之:globa变量的作用域是模块级的,nonlocal变量的作用域是函数级的