Python返回函数结果

时间:2017-12-01 12:03:46

标签: python performance

在速度和代码优化方面有什么好处?执行计算,在本地存储结果引用并返回引用,如下所示:

def aplusb(a,b):
    result = a + b
    return result

或返回计算直接返回给调用者的任何内容:

def aplusb(a,b):
    return a + b

1 个答案:

答案 0 :(得分:5)

第一个执行另外两个字节码,一个用于存储结果,另一个用于再次检索:

Microsoft.Data.OData.ODataException: The query specified in the URI is not valid. Could not find a property named 'EmployeeID' on type 'Person'.

在函数框架对象中还需要更多局部变量空间:

>>> def aplusb_local(a, b):
...     result = a + b
...     return result
...
>>> def aplusb_return(a, b):
...     return a + b
...
>>> import dis
>>> dis.dis(aplusb_local)
  2           0 LOAD_FAST                0 (a)
              2 LOAD_FAST                1 (b)
              4 BINARY_ADD
              6 STORE_FAST               2 (result)

  3           8 LOAD_FAST                2 (result)
             10 RETURN_VALUE    
>>> dis.dis(aplusb_return)
  2           0 LOAD_FAST                0 (a)
              2 LOAD_FAST                1 (b)
              4 BINARY_ADD
              6 RETURN_VALUE

这里的差异是非常边缘; Macbook Pro上1000万次通话的差异为0.038秒

>>> aplusb_local.__code__.co_nlocals
3
>>> aplusb_return.__code__.co_nlocals
2

这不是你应该优化的东西。

优化可读性