2011-03-19 12 views
3
>>> import math 
>>> print "{} {!s} {!r}".format(math.pi, math.pi, math.pi) 
3.14159265359 3.14159265359 3.141592653589793 

!s何時{}有意義?格式()中的{!s}何時有意義?

或換句話說,何時調用str()上的format()參數有意義?

回答

2

每當要打印的類型以不適合您的目的的方式實施__format__時。在這種情況下,您可以使用!s!r(我認爲甚至有!a)可以指定一個替代格式化程序。

你肯定不需要它來打印浮點數,但可能是自定義類型。

+0

+1:對於實現'__str__'的自定義類型應該是第一個。 – 2011-03-19 12:23:24

相關問題