global和nonlocal:
内部作用域想修改外部作用域的变量时使用。
学习内容来源于:
https://www.runoob.com/python3/python3-namespace-scope.html
python中global和nonlocal用法的详细说明 - 知乎 (zhihu.com)
global
如果定义了全局变量,在内部函数中没有对其进行定义和赋值,又对它进行了引用并修改,那么python会认为它是一个局部变量,从而报错。如果想要在局部中修改全局变量,必须在局部中声明该全局变量。如下:
nonlocal
修改嵌套作用域(def中的def)时使用。
nonlocal关键字修饰的变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,会报错(最上层的函数使用nonlocal修饰变量必定会报错)。