为什么在python中返回多值与单值时性能会下降?

2024-09-27 07:33:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: inimporttrueforreturndef时间差异
1条回答
网友
1楼 · 发布于 2024-09-27 07:33:01

我想,python式的答案是,不要在意

早期的低级优化通常被认为是一种不好的做法,因为它会导致代码在需要添加和重构的时候更难阅读和维护

如果您在一个用例中发现了一个瓶颈,或者出于任何原因对加速一小段代码有强烈的需求,那么用C语言(或者如果不使用CPython,则使用您的底层平台语言)编写该部分代码通常会更有效。如果您曾经使用过numpy,那么您知道本机Python循环与使用优化(读编码为C)numpy版本的相同Python循环之间存在数量级的差异

为了更好地理解Python解释器的内部结构而进行的测试是不错的(提高自己的知识永远都不可能)。但是你必须意识到下一步应该是深入解释者的来源,以了解真正的原因。只有10%并不是一个非常重要的差异,如果没有进一步的分析,我不会对的繁殖性太有信心

相关问题 更多 >

    热门问题