Python 中变量的访问权限取决于其赋值的位置,这个位置被称为变量的作用域。
变量在作用域中查找的顺序是 L→E→G→B,即当在局部找不到时会去局部外的局部找,再找不到会在全局范围内找,最后去内置函数所在模块的范围中找。
![](https://i-blog.csdnimg.cn/blog_migrate/c2428e8de3af0e3e4afdf208030b8733.png)
定义在函数内部的变量拥有一个局部作用域,定义在函数外的变量拥有全局作用域。局部变量只能在其声明语句所在的函数内部访问,全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。
当内部作用域想修改外部作用域的变量时,需要使用 global 和 nonlocal 关键字声明外部作用域的变量