访问函数内的变量空间

时间:2014-05-26 11:44:03

标签: python

我有一个包含多个项目的字典。在一个方法中,我想让它们可用。这就是我现在正在做的事情

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

也许这样做,我不是在访问函数范围,而是在它之外的本地范围?如何访问功能范围?

强调

这是一个抽象的问题,可以准确显示我想要的内容。在这种情况下,访问字典将是正确的解决方案。但是,让我们假设我有一些理由这样做。问题是

  • 如何访问存储在字典中的变量?我应该使用字典吗?

  • 鉴于我在函数内部操作,并希望直接在该函数中访问变量,我该如何解压缩字典?

1 个答案:

答案 0 :(得分:0)

这个问题现在经过一些聊天后得到了解决,但仅仅是为了历史:

  • 这样做没有好办法。
  • 虽然locals()似乎在旧版Python的函数空间之外工作,但函数范围内没有类似内容。

我个人会说,但无论如何都是一个缺点。