Basic formatting
最常见的是按照位置进行format,平常用在参数的顺序不太可能更改,并且需要用到的format比较少情况。
按照位置进行format的缺点是:元素没有用像名称之类的具有描述性的东西来表示,所以这种 format 只适用于格式化相对较少的元素的情况。
''' format字符串 ''' # 旧样式 '%s %s' % ('one', 'two') # one two # 新样式 '{} {}'.format('one', 'two') # one two Output ''' format数字''' # 旧样式 '%d %d' % (1, 2) # 1 2 # 新样式 '{} {}'.format(1, 2) # 1 2 Output ''' 还有一种新的format格式,可以给占位符一个显式的位置索引。(在Python2.6中甚至是强制的) 这样可以在不更改参数的情况下重新排列显示顺序。不过这个format不能用于旧版本。 ''' # 新样式 '{1} {0}'.format('one', 'two') # two one
Value conversion
默认情况下,新样式的简单格式化程序是调用对象的__format__()方法。如果只想呈现str(…)或repr(…)的输出,可以使用 !s 或 !r 进行标识。
在%样式中,通常使用%s表示字符串,%r表示repr(…)转换。
class Data(object): def __str__(self): return 'str' def __repr__(self): return 'repr'