我曾经使用过一些示例代码,使用str()而不是我平常使用的''来表示空字符串。使用str()有什么优势吗?例如:
# .....
d = dict()
# .....
# .....
if v is None:
d[c.name] = str()
else:
d[c.name] = v
它似乎更慢了。
$ python -m timeit "'.'.join(str(n)+'' for n in range(100))"
100000 loops, best of 3: 12.9 usec per loop
$ python -m timeit "'.'.join(str(n)+str() for n in range(100))"
100000 loops, best of 3: 17.2 usec per loop
from __future__ import unicode_literals
(不好的想法),在 Python 2 中会有不同的效果。否则,请不要使用。 - Ry-''
的原因也适用于使用{}
而不是dict()
;{}
具有直接解释器支持,绕过相对昂贵的查找和调用机制,而采用单个专用的BUILD_MAP
操作码(在本地微基准测试中,dict()
比{}
慢约4倍)。 - ShadowRanger