格式()时{!s}何时有意义?

时间:2011-03-19 12:06:35

标签: python

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

!s内的{}何时有意义?

或换句话说,何时在str()参数上调用format()有意义?

1 个答案:

答案 0 :(得分:2)

每当要打印的类型以不合适的方式实现__format__时。在这种情况下,您可以使用!s!r(我认为甚至有!a)来指定备用格式化程序。

您当然不需要它来打印浮点数,但可能是自定义类型。