這裏是我的代碼:調用局部變量和調用對象的實例變量之間是否存在性能差異?
elif line.mesg.startswith('^^'):
recog, score = pull_recog(line)
line.recog = recog
line.score = score
print recog + ' '*(20-len(recog)) + '%2.2f'%score
這個問題真的可以歸結爲編譯器是如何管理這樣的:
該編譯器優化這個代碼在某種程度上,這將使沒有什麼區別:
- 調用的局部變量
recog
和score
- 調用對象的實例變量
line.score
的dline.recog
?
我最初的本能,使用局部變量會更快,但我沒有從timeit
得到好的結果,所以我不能確切地說。
這是在一個for循環內,所以在這種情況下優化確實很重要。
在計時上,使用本地變量的時間應該更快顯示 – 2014-08-27 16:04:42