format()中的{!s}何时有意义?

3
>>> import math
>>> print "{} {!s} {!r}".format(math.pi, math.pi, math.pi)
3.14159265359 3.14159265359 3.141592653589793

什么时候在 {} 内部使用 !s 是有意义的?

换句话说,什么时候在调用 format() 函数时,在它的参数上调用 str() 是有意义的?

1个回答

2

如果要打印的类型没有适合您目的的__format__实现。在这种情况下,您可以使用!s!r(我认为甚至有!a)来指定替代格式化程序。

对于打印浮点数,您肯定不需要它,但可能需要用于自定义类型。


+1:对于实现了 __str__ 方法的自定义类型应该放在首位。 - S.Lott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接