在速度和代码优化方面有什么好处?执行计算,在本地存储结果引用并返回引用,如下所示:
def aplusb(a,b):
result = a + b
return result
或返回计算直接返回给调用者的任何内容:
def aplusb(a,b):
return a + b
答案 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
这不是你应该优化的东西。
优化可读性。