Python(2.7):函数的计算代价高吗

Python(2.7):函数的计算代价高吗,python,function,python-2.7,performance,Python,Function,Python 2.7,Performance,python中的函数计算代价高吗?例如,如果我有许多循环,我调用我定义的函数,那么在主代码中编写函数的材料会花费更多吗 一个好的程序员应该怎样做才能使他的代码尽可能的高效?函数调用的开销与您在其中所做的相比是相对较小的。。。最好是有一个干净的代码和几个实现一个作业的函数,而不是1000行无法读取的意大利面代码。在Python中(每种语言都应该如此) 但是,如果您经常调用函数,开销可能会很大(创建堆栈、返回值、跳转到代码地址等)。例如,函数可以使用迭代器并返回应用于迭代器的结果,而不是操作单个数据

python中的函数计算代价高吗?例如,如果我有许多循环,我调用我定义的函数,那么在主代码中编写函数的材料会花费更多吗


一个好的程序员应该怎样做才能使他的代码尽可能的高效?

函数调用的开销与您在其中所做的相比是相对较小的。。。最好是有一个干净的代码和几个实现一个作业的函数,而不是1000行无法读取的意大利面代码。在Python中(每种语言都应该如此)

但是,如果您经常调用函数,开销可能会很大(创建堆栈、返回值、跳转到代码地址等)。例如,函数可以使用迭代器并返回应用于迭代器的结果,而不是操作单个数据:

res = []
for x in elems:
     res.append(my_function(x))


res = my_function(x)  # this solution is way better for performance

如果您想估算函数调用的成本,可以使用。。。:)

Python调用的开销很小,因为当前帧被推送到堆栈上,需要为正在调用的代码对象创建一个新帧

但这种开销相对较小,除非在循环中连续调用一个小函数,否则不会注意到这种固定成本

您应该始终分析实际算法的计算复杂度,并首先尝试将其最小化。只有这样,您才能查看内联函数。使用测量选项之间的时间差

但也要记住:

  • 可读性很重要

正确使用函数可以提高代码的可读性。不要过分地试图通过几分钟的性能改进来抛弃它们。

它们比没有功能更昂贵。。。。但是不是很贵(当然也没有贵到值得担心的程度……),如果您非常关心性能,那么python可能不是解决您正在研究的问题的正确语言……这就回答了您的第二个问题