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中的变量和作用域详解,
最新文章
- iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ①)
- {";读取 XML 数据时,超出最大名称表字符计数配额(16384)。。。。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxNameTableCharCount 属性,。。
- 自动存储管理 ASM (转)
- visio2007使用记录
- Windows下如何安装Python的第三方库
- log4j.properties配置详解(转)
- jacob如何获取word文档的页码
- Web服务器(Apache)虚拟主机的配置
- HDU 4082 Hou Yi's secret(暴力)
- IIS URL Rewrite Module防盗链规则配置方法
- POI单元格添加公式以及读取公式结果的值
- Codeforce A. Fair Game
- spring配置datasource三种方式及具体信息
- String的charAt(int index)可用于遍历一个字符串的所有字符
- Tenka 1 Computer Contest C-Align
- Windows激活客户端 已停止工作
- VIM for C++ 一键安装配置
- Spark机器学习(9):FPGrowth算法
- HDU 2256 Problem of Precision(矩阵)
- C++关于sort和priority_queue的运算符重载
热门文章
- java 如何读取src根目录下的属性文件
- SSM框架中使用日志框架
- itop4412编译内核时出现“recipe for target 'arch/arm/mach-exynos/cpu-exynos4.o' failed”的解决方法
- Number Of Permutations
- Android_(控件)使用AlertDialog实现点击Button显示出多选框
- HDU 5884 Sort ——(K叉哈夫曼树)
- java jsp基础介绍
- [心得]暑假DAY 5
- LeetCode 88. 合并两个有序数组(Merge Sorted Array)
- 静态化-VeloCity