我有一个将数据加载到词典中的函数。 但是,如何将字典加载到函数内的Globals()中。
功能内部很重要,因为我们可以在脚本端外面轻松完成。
def load_inmemory(fpath):
globals().update(load237(fpath)[0])
这个不起作用(全局变量是模块/函数的本地...)
A-1,A-1,A-2,A-2,A-2,A-3
答案 0 :(得分:0)
您应该将这些名称存储在存储在全局变量中的对象上,而不是存储在全局变量中。但你问怎么做,所以这是如何:
将Getting corresponding module from function与for
循环和setattr
一起用作模块不支持字典操作,可以将函数编写为:
import sys
def load_inmemory():
module = sys.modules[load_inmemory.__module__]
for k, v in load237(fpath)[0].items():
setattr(module, k, v)
load_inmemory()
print x
我测试了以下内容:
import sys
def func():
module = sys.modules[func.__module__]
for k,v in {'x':4}.items():
setattr(module, k, v)
func()
print x
打印4
。在Python 2.7.3中测试。