我试图让函数找出用作函数参数的原始表达式。 例如:
def fun(var):
exp_var = <some magic>
print "%s = %s"%(exp_var, var)
这样:
>>> fun(4.5+2*2)
将打印
4.5+2*2 = 8.5
我认为应该有一种使用python的检查模块的方法,但我无法找到。
编辑: 感谢@ propjk007,这是一个有效的代码:
import traceback, re
def fun(var):
stack = traceback.extract_stack()
code = stack[-2][3]
mat = re.compile(r'\((.*?)\).*$').search(code).groups()[0]
print ("%s = %s")%(mat, var)