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__' ...]
没有a
和b
。
我实际上想要保护指针稍后使用,所以我不能只传递[a,b]
。
答案 0 :(得分:9)
使用sys._getframe()
function访问调用帧。框架对象具有f_locals
属性,使您可以访问该框架的局部变量:
import sys
def bar():
caller = sys._getframe(1)
print caller.f_locals