【发布时间】:2013-09-02 03:52:03
【问题描述】:
在 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 到底发生了什么?
【问题讨论】:
-
尝试用您的示例输入写下重复。
-
@PhillipCloud:他不是在“抱怨抽象”。这是他为了理解问题而阅读的一段话。
-
@user2357112 啊,我的错。感谢您指出这一点。
标签: python performance function interpreter python-idle