不是完美的基准,但
$python --version
Python 3.4.2
$ python -m timeit 'print("foo" + str(3.14) + "bar")'
100000 loops, best of 3: 16.4 usec per loop
$ python -m timeit 'print("foo{}bar".format(3.14))'
100000 loops, best of 3: 19.2 usec per loop
答案 0 :(得分:5)
你是对的,使用format
的人稍微更慢。但谁在乎?你不会在性能关键的应用程序中做这种事情,对吗?
如果您想要解释为什么format
应该更慢,可能是因为它必须解析格式字符串。这比简单地将数字转换为字符串和连接更为复杂。我很惊讶,差异就像它一样小。
答案 1 :(得分:0)
由于.format()
正在做的额外工作。
.format()
实际上不是来自Formatter
类的String类本身的工作,这就是为什么你会看到额外的几秒钟,它是'将工作卸载到一个专门的班级,完成所有繁重的工作。