繁体   English   中英

Python str()vs.'' - 这是首选

[英]Python str() vs. '' - which is preferred

我使用了一些使用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()调用返回空字符串的事实是副作用,而不是该方法的预期主要用途。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM