gpt4 book ai didi

python - 长方程或分解方程在 Python 中什么更快?

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:20 25 4
gpt4 key购买 nike

假设我有以下代码:

qwe = 1.5    

def jkl(l):
result = 2*(math.pi/l)
return result

def asd(b, l):
result = (abs(((jkl(l)**2)*(qwe**2))-(b**2))**(0.5)
return result

现在在 asd def 中使用那个长方程是否更有效,或者如果它被分解会更快地计算:

def asd(b, l):
z1=jkl(l)**2
z2=qwe**2
z3=b**2
z4=(z1*z2)-z3
z5=abs(z4)
z6=z5**(0.5)
return z6

由于我的代码可能会被第三方使用和修改,分解的示例很容易理解,但是创建所有这些函数内变量是否比在一行中完成所有这些更能减慢速度?它需要尽可能快,因为该函数将被其他更复杂的函数调用数百次。

最佳答案

不测量就无法判断。幸运的是,Python 附带了 module timeit正是这样做的。

只需通过 timeit.timeit() 运行这两个函数,它会告诉您哪个更快。

我的直觉是紧凑的单行形式更快,但我可能错了。

您可能想用常量 PI2 替换 2*math.pi:

PI2 = 2*math.pi
def jkl(l): return PI2 / l

并且由于函数调用很昂贵,您应该将此代码内联到 asd()

PS:希望真实代码中的函数名更具可读性。 :-) 当我在某人的代码中看到 asd() 时,我感到一阵强烈的愤怒。 :-)

关于python - 长方程或分解方程在 Python 中什么更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13413955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com