我从 Python Github 存储库下载了 Python 3.6 alpha 版本,我最喜欢的新功能之一是文字字符串格式化。它可以像这样使用:
>>> x = 2
>>> f"x is {x}"
"x is 2"
这似乎与在实例上使用该format
函数做同样的事情。str
但是,我注意到的一件事是,与仅调用format
. 以下是timeit
关于每种方法的说明:
>>> x = 2
>>> timeit.timeit(lambda: f"X is {x}")
0.8658502227130764
>>> timeit.timeit(lambda: "X is {}".format(x))
0.5500578542015617
如果我使用字符串作为timeit
' 的参数,我的结果仍然显示模式:
>>> timeit.timeit('x = 2; f"X is {x}"')
0.5786435347381484
>>> timeit.timeit('x = 2; "X is {}".format(x)')
0.4145195760771685
如您所见,使用format
几乎花费了一半的时间。我希望文字方法更快,因为涉及的语法更少。幕后发生了什么导致文字方法慢得多?