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中pip安装非PyPI官网第三方库的方法
Jun 02 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
Oct 08 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
python入门教程 python入门神图一张
Mar 05 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
python实现简单井字棋游戏
Mar 04 Python
Python函数基本使用原理详解
Mar 19 Python
python实现经纬度采样的示例代码
Dec 10 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自动适应范围的分页代码
2008/08/05 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
destoon复制新模块的方法
2014/06/21 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
angularjs基础教程
2014/12/25 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
实现vuex原理的示例
2020/10/21 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
python生成指定尺寸缩略图的示例
2014/05/07 Python
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
Python 中的lambda函数介绍
2018/10/10 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
Python连接Impala实现步骤解析
2020/08/04 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
泰国第一在线超市:Tops
2021/02/13 全球购物
建筑人员岗位职责
2013/12/25 职场文书
艺人经纪人岗位职责
2014/04/15 职场文书
詹天佑教学反思
2014/04/30 职场文书
创先争优个人承诺书
2014/08/30 职场文书
婚前协议书范本两则
2014/10/16 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
python字典的元素访问实例详解
2021/07/21 Python