关于Python函数max()和ifelse结构的问题很耗时



如果我想比较python中的两个数字:

一种方法是通过max((:

r = max(r,a-b)

另一种方式是这样的:

r = a-b if a-b>r else r

第二种方式比第一种方式快,这种表现让我很困惑。因为max((函数一定已经优化了,我认为第二种方法可能会计算(a-b(两次。有人能解释一下为什么吗?

使用max的开销是调用函数调用。每个函数调用都会带来这种开销。现代编译器倾向于通过(可选(使函数调用内联来优化这一点,也就是说,在调用函数的地方替换函数代码。尽管python内置程序经过了优化,但参数解析仍有一些开销。

最新更新