我想实现调用foo(2*3)打印2*3。
foo(2*3)
2*3
我试图通过inspect模块使其工作,但无法使其工作。
inspect
因为表达式是在传递给函数之前求值的,所以不可能打印出未求值的表达式。
然而,有一个可能的变通方法。 您可以将表达式作为字符串传递,并在函数内部使用eval()求值。 举一个简单的例子:
eval()
def foo(expr): print(expr) return(eval(expr))
然而,请注意,使用eval被认为是不良做法。
更好的解决方案是简单地传递一个字符串和表达式,例如foo(2*3,“2*3”)。
foo(2*3,“2*3”)