3
>>> import math
>>> print "{} {!s} {!r}".format(math.pi, math.pi, math.pi)
3.14159265359 3.14159265359 3.141592653589793
!s
何時{}
有意義?格式()中的{!s}何時有意義?
或換句話說,何時調用str()
上的format()
參數有意義?
>>> import math
>>> print "{} {!s} {!r}".format(math.pi, math.pi, math.pi)
3.14159265359 3.14159265359 3.141592653589793
!s
何時{}
有意義?格式()中的{!s}何時有意義?
或換句話說,何時調用str()
上的format()
參數有意義?
每當要打印的類型以不適合您的目的的方式實施__format__
時。在這種情況下,您可以使用!s
或!r
(我認爲甚至有!a
)可以指定一個替代格式化程序。
你肯定不需要它來打印浮點數,但可能是自定義類型。
+1:對於實現'__str__'的自定義類型應該是第一個。 – 2011-03-19 12:23:24