Python中globals和locals的区别-pybatis的准备阶段(六)
2013-03-08 09:52
537 查看
Python的两个内置函数,locals 和globals,它们提供了基于字典的访问局部和全局变量的方式。
1、locals()是只读的。globals()不是。这里说的只读,是值对于原有变量的只读。其实还可以对locals()赋值的。见下图
上面的图就可以看出了,对locals()中增加了一个b变量。
2、locals和globals的返回不同
locals(...)
locals() -> dictionary
Update and return a dictionary containing the
current scope's local variables.
globals(...)
globals() -> dictionary
Return the dictionary containing the current scope'sglobal variables.
也就是说globals返回的是当前模块的全局变量 locals返回的是局部变量。注意,locals返回的是当前所在最小命名空间的局部变量的一个拷贝。比如说在一个函数中调用locals(),那么返回的将是这个函数内部的局部变量。
记住,locals返回的变量都是原有变量的“拷贝”。
1、locals()是只读的。globals()不是。这里说的只读,是值对于原有变量的只读。其实还可以对locals()赋值的。见下图
上面的图就可以看出了,对locals()中增加了一个b变量。
2、locals和globals的返回不同
locals(...)
locals() -> dictionary
Update and return a dictionary containing the
current scope's local variables.
globals(...)
globals() -> dictionary
Return the dictionary containing the current scope'sglobal variables.
也就是说globals返回的是当前模块的全局变量 locals返回的是局部变量。注意,locals返回的是当前所在最小命名空间的局部变量的一个拷贝。比如说在一个函数中调用locals(),那么返回的将是这个函数内部的局部变量。
记住,locals返回的变量都是原有变量的“拷贝”。
相关文章推荐
- Python解析xml文件-pybatis的准备阶段(二)
- Python中的异常-pybatis的准备阶段(四)
- Python解析xml-pybatis的准备阶段(八)
- python locals 与 globals 之间有另外一个重要的区别
- Python接口与类继承学习-pybatis的准备阶段(九)
- Python中Mysqldb的使用以及事务的支持-pybatis首次露面-pybatis的准备阶段(十)
- python 本地变量和全局变量 locals() globals() global nonlocal 闭包 以及和 scala 闭包的区别
- Python中动态导入模块-pybatis的准备阶段(七)
- Python中的静态方法-pybatis的准备阶段(五)
- Python操作MySql-pybatis的准备阶段(三)
- Python的多线程支持-pybatis的准备阶段(十一)
- Python中的反射(自省)-pybatis的准备阶段(一)
- Python标准库:内置函数eval(expression, globals=None, locals=None)
- Python 内置函数 locals() 和globals()
- Python两个内置函数――locals 和globals
- 给PyBatis添加数据库连接池支持-pybatis的准备阶段(十二)
- Python两个内置函数 locals 和globals(学习笔记)
- Python : locals 和globals 以及反射(自省)
- python中的globals()和locals()函数
- python笔记11 - lambda函数,globals()/locals()函数,eval()exec()函数,闭包函数,函数式编程,高阶函数