Python中的变量和作用域详解
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 "", line 1, in
File "", 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 多线程两种实现方式
- 第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图
- python-django-redis拒绝连接问题解决_20191121
- 【学习总结】Python-3-多个变量赋值
- PYTHON线程知识再研习E---条件变量同步Condition
- Python变量和字符串详解
- Python变量和字符串详解
- python条件变量之生产者与消费者操作实例分析
- python后端面试第四部分:django框架--长期维护
- python: 安装DeOldify库:黑白图片上色(Python 3.7.15)
- Python基础:Python的数据结构
- Python 高手都是怎么玩转 Excel 自动化的
- 为了让大家更好地学习python爬虫,我们做了一个“靶子”
- Python之ffmpeg-python:ffmpeg-python库的简介、安装、使用方法之详细攻略
- Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略
- Python语言学习之字符串那些事:python和字符串的使用方法之详细攻略
- 已解决2. Set PROTOCOL_BUPFERS_PYTHON_iMPLEMENTATION=python (but this will use pure-Python parsing and w
- 已解决Visit python.org to download an earlier version of Python.
- 〖Python 数据库开发实战 - MongoDB篇⑦〗- 开启 MongoDB 的登录验证功能
- 从零开始学python | 使用Python映射,过滤和缩减函数:所有您需要知道的
- 树模型对类别变量的 7 种处理方法(Python代码)
- 超棒!教你用 Python 绘制炫酷专业插图
- Python学习09:数据类型和变量
- 【华为机试真题 Python实现】藏宝图
- Python编程:twine模块打包python项目上传pypi
- Python爬虫:scrapy框架请求参数meta、headers、cookies一探究竟
- python 找出序列中出现次数最多的元素方法
- 写网络爬虫天然就是择Python而用 python 网络爬虫3
- python基础===jieba模块,Python 中文分词组件
- 【Python】Visual Studio Code 安装&&使用 hello python~~~~
- Python-Tensorflow基础(二)变量 Fetch Feed 使用
- 【异常】前端ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.