我在玩f-string(参见PEP 498),我决定判断f-string解析的速度(例如f"{1}"
),与通常的str解析(例如str(1)
)进行比较.但令我惊讶的是,当我用timeit函数判断这两种方法的速度时,我发现
>>> from timeit import timeit
>>> timeit("f'{1}'")
0.1678762999999961
鉴于
>>> timeit("str(1)")
0.3216999999999999
甚至是repr func,在大多数情况下比str cast更快
>>> timeit("repr(1)")
0.2528296999999995
我想知道这是为什么?我以为f字符串在内部称为str,但现在,我有点困惑,有什么 idea 吗?提前谢谢!
PD:如果有人想知道:
assert f"{1}" == str(1) == repr(1)