python3 嵌套函数调用全局变量
例子
示例1
1 | # 嵌套函数声明了自己的局部变量,所以不会找到外部函数的局部变量,对外面的局部变量也不会产生影响 |
示例2
1 | # 嵌套函数找不到局部变量时找全局变量,这里指外部函数的局部变量 |
示例3
1 | def outFunc(): |
示例4
1 | def outFunc(): |
示例5
1 | def outFunc(): |
总结:
- 嵌套函数不能修改全局变量,本质为不能修改全局变量的指向,即不能将全局变量指向新的数据
- 如果在嵌套函数中修改全局变量,那么就需要使用global或nonlocal进行声明,否则出错
- 对于
不可变类型
的全局变量来说,因其指向的数据不能修改,所以不使用global或nonlocal声明时无法修改全局变量 - 对于
可变类型
的全局变量来说,因其指向的数据可以修改,所以不使用global或nonlocal时也可修改全局变量
遗留问题:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 yelin!