我使用了一些示例代码,该示例代码使用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
答案 0 :(得分:4)
唯一的好处是,如果在本地重新定义str
,则str()
将使用该定义,而''
则不会。否则,它们是等效的(尽管不相等,因为在一种情况下编译器将发出函数调用,而在另一种情况下将发出常量)。
答案 1 :(得分:3)
在以下情况下使用对Python manual str()
的引用:
bytes
(或其他字节序列,例如bytearray
)转换为字符串在所有其他情况下,您应该使用''
。
一个空的str()
调用返回一个空白字符串的事实是一个副作用,而不是该方法的预期主要用途。