重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

云计算开发学习笔记:Python3作用域

时间:2020-08-05 20:20:06 作者:重庆seo小潘 来源:
对于变量作用域,变量的访问以 L(Local)> E(Enclosing)> G(Global)>B(Built-in) 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。 观察以下几个例子,均从内部函数输出变量 x: 1. 局部作

对于变量作用域,变量的访问以 L(Local)> E(Enclosing)> G(Global)>B(Built-in) 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。

观察以下几个例子,均从内部函数输出变量 x:

1. 局部作用域

云计算开发学习笔记:Python3作用域

执行结果为 2,因为此时直接在函数 inner 内部找到了变量 x。

2. 闭包函数外的函数中

云计算开发学习笔记:Python3作用域

执行结果为 1,因为在内部函数 inner 中找不到变量 x,继续去局部外的局部——函数 outer 中找,这时找到了,输出 1。

3. 全局作用域

云计算开发学习笔记:Python3作用域

执行结果为 0,在局部(inner函数)、局部的局部(outer函数)都没找到变量 x,于是访问全局变量,此时找到了并输出。

4. 内建作用域

云计算开发学习笔记:Python3作用域

执行结果为 3,在局部(inner函数)、局部的局部(outer函数)以及全局变量中都没有找到变量x,于是访问内建变量,此时找到了并输出。