我有一个包含多个项目的字典。在一个方法中,我想让它们可用。这就是我现在正在做的事情
def myFunc(stuff):
for foo, bar in stuff.items():
locals()[foo] = bar
testVar
foo = {'testVar': 0}
myFunc(foo)
然而,我得到了(在python 2.7中)
NameError: global name 'testVar' is not defined
也许这样做,我不是在访问函数范围,而是在它之外的本地范围?如何访问功能范围?
强调
这是一个抽象的问题,可以准确显示我想要的内容。在这种情况下,访问字典将是正确的解决方案。但是,让我们假设我有一些理由这样做。问题是不:
是
答案 0 :(得分:0)
这个问题现在经过一些聊天后得到了解决,但仅仅是为了历史:
locals()
似乎在旧版Python的函数空间之外工作,但函数范围内没有类似内容。 我个人会说,但无论如何都是一个缺点。