起因
最近闲来无事, 在 Python 官网上看到了2.0版本, 是2001年的.
?...为什么读到了全局变量? 我还特地有到Python 3.0的环境中跑了一遍, 发现结果确实是3啊. 不懂就要问, 于是我开始搜寻各种资料, 发现这设计到了变量的作用域....再来回看一下最开始的问题, 为什么在Python 2.0中, 闭包读取到的变量是全局变量呢? 很明显, 其使用了静态作用域导致的. 那么在2.0中如何解决这个问题呢?...(也不知道为什么2.1比2.2还要晚一年发布)
在函数中如果想修改外部变量, 需要对变量进行声明, 若不声明则创建本地变量....在 Python 中有两个关键字对变量进行声明:
global: 声明全局变量, 既通过静态作用域的方式查找变量
nolocal: 通过动态作用域的方式查找变量
当然, Python中通过上面关键字标识的变量修改