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

liftword5个月前 (01-12)技术文章29

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

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

1. 局部作用域

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

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

3. 全局作用域

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

4. 内建作用域

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

本文源自TechWeb.com.cn

相关文章

Python的五大主要用途

Python的五大主要用途一、Web开发二、数据分析/可视化三、网络爬虫四、机器学习五、自动化运维...

学习Python都能做什么?看完这些小学生作品程序员直呼后生可畏

提起《我的世界》这款3D第一人称沙盒游戏,几乎无人不晓。无论是成年玩家还是小朋友都可尽情释放创造力与想象力,构建一个专属自己的理想国。设计游戏场景与环境,制定创意多变的玩法与任务,添加森林、沙漠等生物...

python 代码中 self 有什么用途?

在python语言中编写面向对象的代码时,都会遇到 self 这个参数,其代表一个类的实例。使用 self 访问一个类的方法和属性,就绑定了用参数所要表示的属性,之所以这样做的原因是,python没有...

一文说明python中的实例方法,类方法和静态方法作用和区别是啥?

我们都知道 ,python类中有三种常见的方法 ,分别是实例方法 ,类方法和静态方法 。那么这几个方法到底有什么作用 ? 它们之间有什么区别 ?该如何使用 ? 带着这些问题 ,下面我们就来了解下这三种...