Python 访问函数内部的变量空间

Python 访问函数内部的变量空间,python,Python,我有一本字典,里面有几项。在一个方法中,我想使这些可用。这就是我现在正在做的 def myFunc(stuff): for foo, bar in stuff.items(): locals()[foo] = bar testVar foo = {'testVar': 0} myFunc(foo) 但是,我得到了(在python 2.7中) 也许这样做,我不是在访问函数范围,而是访问它之外的本地范围?如何访问功能范围 强调 这是一个抽象的问题,

我有一本字典,里面有几项。在一个方法中,我想使这些可用。这就是我现在正在做的

def myFunc(stuff):        
    for foo, bar in stuff.items():
        locals()[foo] = bar
    testVar

foo = {'testVar': 0}
myFunc(foo)
但是,我得到了(在python 2.7中)

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

强调

这是一个抽象的问题,以准确地显示我想要什么。在这种情况下,ofc.访问字典将是正确的解决方案。但是让我们假设我这样做是有原因的。问题不是:

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

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

经过一番交谈之后,这个问题现在已经解决了,但仅仅是为了历史的缘故:

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

我个人会说这是一个很大的缺点,但不管怎样。

您的缩进严重错误。修复了缩进-所见即所得编辑器有一些问题(即,我不能数到四)。不,您不能向函数添加新的本地名称<代码>局部变量()是只读的。
testVar
的范围是在解析时确定的,而不是在运行时确定的。只需使用常规词典,不要尝试动态创建新名称。@FooBar:不,您误解了词典的性质。您可以更改它,但不会从中设置任何局部变量。这是一条单行道。请看我的另一篇文章,它结束了这个问题。
NameError: global name 'testVar' is not defined