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中的变量和作用域详解,
相关文章
- 解决在macOS下安装了python却没有pip命令的问题【经验总结】
- 关于Python ,requests的小技巧
- Python变量和字符串详解
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- selenium+Python富文本框赋值
- [Python] Scatter Plot for daily return
- PYTHON--定期监测服务器端口,并将结果写入MYSQL
- 【Python五篇慢慢弹(3)】函数修行知python
- 深入理解Python变量与常量
- python中星号变量的几种特殊用法
- Python multiprocessing.Manager()
- python的可变变量和不可变变量
- 日志回滚:python(日志分割)
- 【Python】python对象与json相互转换
- python:pip升级pip本身和setuptools(Python 3.7.15)
- Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
- Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
- Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码
- Python之多线程:python多线程设计之同时执行多个函数命令详细攻略
- 已解决2.Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and wi
- Python初学:变量是什么?盘点那些变量的基本概念
- python基础知识之 Python代码规范
- python判断链表是否有环
- Python开发之Python导包的几种方法,自定义包的生成以及导入详解
- python基础===jieba模块,Python 中文分词组件
- 多版本Python共存时pip给指定版本的python安装package的方法
- python爬虫(二)爬虫需要准备的库和工具
- Python操作word基础