提问者:小点点

有没有一种方法可以像调用者所说的那样在calle中获得函数参数?


我想实现调用foo(2*3)打印2*3

我试图通过inspect模块使其工作,但无法使其工作。


共1个答案

匿名用户

因为表达式是在传递给函数之前求值的,所以不可能打印出未求值的表达式。

然而,有一个可能的变通方法。 您可以将表达式作为字符串传递,并在函数内部使用eval()求值。 举一个简单的例子:

def foo(expr):
    print(expr)
    return(eval(expr))

然而,请注意,使用eval被认为是不良做法。

更好的解决方案是简单地传递一个字符串和表达式,例如foo(2*3,“2*3”)