在 IDLE GUI 中测试代码时,我正在查看 Python 中一个使人衰弱的性能问题。
对于递归函数:
def f(input1,input2):
newinput1 = g(input1,input2);
return f(newinput1,input2)
如果我调用函数 f(20,A+10) ,其中 A 是一个常数,那么每次递归调用 f() 是否将 input2 = "A+10" 作为一个重新解释的字符串,得到一个需要重新计算的表达式, 还是得到一个 A+10 结果的数字?
我在帮助文件中找到了这个,但需要更明确的定义才能理解:
“抽象往往会创建间接并迫使解释器工作更多。如果间接级别超过完成的有用工作量,您的程序将会变慢。您应该避免过度抽象,特别是在微小的函数或方法的形式下(也常常不利于可读性)。”
Python到底发生了什么?