繁体   English   中英

python获取调用函数的当前变量

[英]python get current variables of the caller function

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]

使用sys._getframe()函数可以访问调用帧。 Frame对象具有f_locals属性,使您可以访问该帧的局部变量:

import sys

def bar():
    caller = sys._getframe(1)
    print caller.f_locals

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM