云计算开发学习笔记: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. 局部作用域
执行结果为 2,因为此时直接在函数 inner 内部找到了变量 x。
2. 闭包函数外的函数中
执行结果为 1,因为在内部函数 inner 中找不到变量 x,继续去局部外的局部——函数 outer 中找,这时找到了,输出 1。
3. 全局作用域
执行结果为 0,在局部(inner函数)、局部的局部(outer函数)都没找到变量 x,于是访问全局变量,此时找到了并输出。
4. 内建作用域
执行结果为 3,在局部(inner函数)、局部的局部(outer函数)以及全局变量中都没有找到变量x,于是访问内建变量,此时找到了并输出。