1

好吧,我总是在 python 上使用 %r,但我不知道什么时候必须使用这些其他格式......

4

2 回答 2

16

这在Python 文档中进行了解释。简而言之,

  • %d将格式化一个数字以供显示。
  • %s将插入对象的表示字符串表示(即str(o)
  • %r将插入对象的规范字符串表示(即repr(o)

如果您正在格式化整数,那么这些是等效的。对于大多数对象,情况并非如此。

于 2013-03-02T03:36:08.020 回答
11

这是一个补充詹姆斯亨斯特里奇答案的例子:

class Cheese(float):
    def __str__(self):
        return 'Muenster'
    def __repr__(self):
        return 'Stilton'

chunk = Cheese(-123.4)

print(str(chunk))
# Muenster
print(repr(chunk))
# Stilton
print(int(chunk))
# -123
print('%s\t%r\t%d'%(chunk, chunk, chunk))
# Muenster  Stilton -123
于 2013-03-02T03:39:49.527 回答