好吧,我只是在python上使用%r,但我不知道何时必须使用这些其他格式......
答案 0 :(得分:14)
the Python documentation中对此进行了解释。简而言之,
%d
将格式化一个数字以供显示。%s
将插入对象的表示字符串表示(即str(o)
)%r
将插入对象的规范字符串表示形式(即repr(o)
)如果要格式化整数,则这些是等效的。对于大多数物体,情况并非如此。
答案 1 :(得分:9)
这是一个补充James Henstridge答案的例子:
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