python locals 与 globals 之间有另外一个重要的区别
来源:互联网 发布:unity3d fbx 层次 编辑:程序博客网 时间:2024/05/29 04:28
locals 与 globals 之间有另外一个重要的区别,您应该在它困扰您之前就了解它。它无论如何都会困扰您的,但至少您还会记得曾经学习过它。
例 8.12. locals 是只读的,globals 不是
def foo(arg): x = 1 print locals() locals()["x"] = 2 print "x=",x z = 7print "z=",zfoo(3)globals()["z"] = 8 print "z=",z
因为使用 3 来调用 foo,会打印出 {'arg': 3, 'x': 1}。这个应该没什么奇怪的。locals 是一个返回 dictionary 的函数,这里您在 dictionary 中设置了一个值。您可能认为这样会改变局部变量x 的值为 2,但并不会。locals 实际上没有返回局部名字空间,它返回的是一个拷贝。所以对它进行改变对局部名字空间中的变量值并无影响。这样会打印出 x= 1,而不是 x= 2。在有了对 locals 的经验之后,您可能认为这样不会 改变z 的值,但是可以。由于 Python 在实现过程中内部有所区别 (关于这些区别我宁可不去研究,因为我自已还没有完全理解) ,globals 返回实际的全局名字空间,而不是一个拷贝:与locals 的行为完全相反。所以对 globals 所返回的 dictionary 的任何的改动都会直接影响到全局变量。这样会打印出 z= 8,而不是 z= 7。
- python locals 与 globals 之间有另外一个重要的区别
- python locals 与 globals 之间有另外一个重要的区别
- Python中globals和locals的区别
- 【python】locals()、globals()与名字空间
- Python 的locals 和 globals函数
- python模块的locals和globals
- Python:locals 和 globals
- python locals globals
- Python中的变量有作用域或命名空间及locals()与globals()函数
- Python中globals和locals的区别-pybatis的准备阶段(六)
- 【Python】 Python:locals 和 globals
- 【Python】 Python:locals 和 globals
- python之globals()和locals()
- Python 内置函数 locals globals
- Python基础-Python:locals 和 globals
- locals 和 globals(python学习14)
- python中的globals()、locals()、dir()、vars()、__dict__
- Python入门基础知识:locals() 和globals()
- ProjectRuler-10
- JS获取当前操作的元素
- Oralce监听服务出现问题解决方案 (ORA-12505, TNS:listener does not currently know of SID given in connect)
- js获取时间
- 修改目录文件名-Ruby实现
- python locals 与 globals 之间有另外一个重要的区别
- ckfinder上传文件时出错
- 各类排序算法
- 新走遍美国
- 用Rivatuner实测显存占用量
- 单例模式
- 工厂模式
- 写一个函数,检查字符是否是整数,如果是,返回其整数值
- android 判断网络状态