Python中的变量和作用域详解
发布时间:2020-12-16 20:30:07 所属栏目:Python 来源:网络整理
导读:作用域介绍 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量; E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的; G:globa,全局变量,就是模块级别定义的变量; B:built-in,系统固
作用域介绍 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 – 使用openCV进行相机校准 – cv2.getOptimalNewCa
- 使用Django ORM“SELECT field as x …”
- python – 使用PyQtGraph我的Surface Plot显示在窗口的左下
- python – 当ndims事先不知道时处理多维数组
- Python:判断列表中含有字符串且组成新的列表打印输出
- python – 将_socketobjects作为参数传递
- 在python中实现基于FFT的基于FFT的核密度估计器,并将其与Sc
- IPython:如何在不同的单元格中显示相同的情节?
- 使用django-suit为django 1.7 admin后台添加模板
- Python利用itchat对微信中好友数据实现简单分析的方法