1、locals() 和 globals() 是Python的内建函数,他们提供了字典的形式访问局部变量和全局变量的方式。
def A(arg):
a=1
b=2
data_dict = {}
print locals()
print globals()
if __name__ == '__main__':
A(3)
2、locals() 返回是当前局部变量的深拷贝,修改locals() 中变量值的时候,实际上对于原变量本身是没有任何影响的。而globals()返回的是全局变量的字典,修改其中的内容,值会真正的发生改变。
v = 5 # 定义一个全局变量
def TEST():
k=1
locals()["k"] = 2 # 修改局部变量
print "k=", k
globals()["b"] = 6 # 修改全局变量
print "v=", v
if __name__ == '__main__':
TEST()
输出为:
k=1
v=6