Python str() vs. - 首选

  • 本文关键字:首选 vs str Python python
  • 更新时间 :
  • 英文 :


我使用了一些示例代码,它使用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

唯一的优点是,如果在本地重新定义str,则str()将使用该定义,而''则不会。否则,它们是等价的(尽管不相等,因为编译器在一种情况下会发出函数调用,在另一种情况中会发出文字(。

参考Python手册str()在以下情况下使用:

  1. 您想要对象的字符串表示
  2. 要将bytes(或其他字节序列,如bytearray(转换为字符串

在所有其他情况下,都应该使用''

一个空的str()调用返回一个空字符串是一个副作用,而不是该方法的主要用途。

最新更新