这里是我的代码:调用局部变量和调用对象的实例变量之间是否存在性能差异?
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