5
def foo():
    a = 1
    b = 2
    dir() # prints [a, b]
    bar(?) 

der bar(foo_pointer):
    print dir(foo_pointer) # should print [a,b]

我试图使用 bar(sys.modules[__name__].main),但没有给出[a,b],但['__call__','__class__' ...]没有ab

我实际上想保护该指针以供以后使用,所以我不能只通过[a,b].

4

1 回答 1

10

使用该sys._getframe()函数访问调用框架。框架对象具有一个f_locals属性,可让您访问该框架的局部变量:

import sys

def bar():
    caller = sys._getframe(1)
    print caller.f_locals
于 2013-10-31T13:32:37.167 回答