Python支持多返回,但存在性能问题。您能解释一下原因吗
def add1(a,b):
return a+b
def add2(a,b):
return a+b
import timeit
print(timeit.timeit('[func(1,1) for func in (add1,add2)]', globals=globals()))
执行差异时的时间: 0.5730050599668175,0.58586961904075, 0.5807652469957247
def add1(a,b):
return a+b, True
def add2(a,b):
return a+b, True
import timeit
print(timeit.timeit('[func(1,1) for func in (add1,add2)]', globals=globals()))
执行差异时的时间: 0.664527209563785、0.6714418820338324、0.6890694650355726
我想,python式的答案是,不要在意
早期的低级优化通常被认为是一种不好的做法,因为它会导致代码在需要添加和重构的时候更难阅读和维护
如果您在一个用例中发现了一个瓶颈,或者出于任何原因对加速一小段代码有强烈的需求,那么用C语言(或者如果不使用CPython,则使用您的底层平台语言)编写该部分代码通常会更有效。如果您曾经使用过numpy,那么您知道本机Python循环与使用优化(读编码为C)numpy版本的相同Python循环之间存在数量级的差异
为了更好地理解Python解释器的内部结构而进行的测试是不错的(提高自己的知识永远都不可能)。但是你必须意识到下一步应该是深入解释者的来源,以了解真正的原因。只有10%并不是一个非常重要的差异,如果没有进一步的分析,我不会对的繁殖性太有信心
相关问题 更多 >
编程相关推荐