Python中的变量和作用域详解


Posted in Python onJuly 13, 2016

作用域介绍

python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量;

E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;

G:globa,全局变量,就是模块级别定义的变量; B:built-in,系统固定模块里面的变量,比如int, bytearray等。 搜索变量的优先级顺序依次是:作用域局部>外层作用域>当前模块中的全局>python内置作用域,也就是LEGB。

x = int(2.9) # int built-in
g_count = 0 # global
def outer():
o_count = 1 # enclosing
def inner():
i_count = 2 # local

当然,local和enclosing是相对的,enclosing变量相对上层来说也是local。

#定义变量a
>>> a = 0
>>> print a
0
#定义函数p()
>>> def p():
... print a
... 
>>> p()
0
#定义函数p2()
>>> def p2():
... print a
... a = 3
... print a
... 
>>> p2() # 运行出错,外部变量a先被引用,不能重新赋值
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "<interactive input>", line 2, in p2
UnboundLocalError: local variable 'a' referenced before assignment
#定义函数p3()
>>> def p3():
... a = 3 # 不引用直接赋值
... print a
... 
>>> p3()
3
>>> print a
0 # 外部变量a并未改变

以上所述是小编给大家介绍的Python中的变量和作用域详解,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python写的Tkinter程序屏幕居中方法
Mar 10 Python
python编写的最短路径算法
Mar 25 Python
详解Python中的序列化与反序列化的使用
Jun 30 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
python实现批量图片格式转换
Jun 16 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
python快速排序的实现及运行时间比较
Nov 22 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 Python
python面向对象版学生信息管理系统
Jun 24 Python
Pygame Rect区域位置的使用(图文)
Nov 17 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 #Python
举例讲解Python编程中对线程锁的使用
Jul 12 #Python
使用Python编写一个最基础的代码解释器的要点解析
Jul 12 #Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 #Python
Python使用SocketServer模块编写基本服务器程序的教程
Jul 12 #Python
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
Jul 12 #Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 #Python
You might like
php+javascript的日历控件
2009/11/19 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
Ruffy javascript 学习笔记
2009/11/30 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
cookie的secure属性详解
2015/04/08 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
javascript每日必学之多态
2016/02/23 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
Python实现的批量下载RFC文档
2015/03/10 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
python里dict变成list实例方法
2019/06/26 Python
tensorflow 变长序列存储实例
2020/01/20 Python
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
汽车专业人才自我鉴定范文
2013/12/29 职场文书
给小学生的新年寄语
2014/04/04 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
孔庙导游词
2015/02/04 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
九年级英语教学反思
2016/02/15 职场文书
Python利用capstone实现反汇编
2022/04/06 Python