代码之家  ›  专栏  ›  技术社区  ›  Martlark

python str()与'.'-这是首选

  •  7
  • Martlark  · 技术社区  · 6 年前

    我使用了一些示例代码,这些代码使用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
    
    2 回复  |  直到 6 年前
        1
  •  3
  •   Burhan Khalid    6 年前

    指的是 Python manual str() 在以下情况下使用:

    1. 你想要一个对象的字符串表示
    2. 你想转换 bytes (或其他字节序列,如 bytearray )成串

    在所有其他情况下,您应该使用 '' 是的。

    事实上 str() 调用返回空字符串是一种副作用,不是方法的主要用途。

        2
  •  5
  •   Ignacio Vazquez-Abrams    6 年前

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