先看个实例
_formats = {
'ymd': '{d.year}-{d.month}-{d.day}',
'dmy': "{d.day}-{d.month}/{d.year}",
'mdy': "{d.month}/{d.day}/{d.year}"
}
class Date(object):
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def __format__(self, mode):
if mode == '':
mode = 'ymd'
fmt = _formats[mode]
return fmt.format(d=self)
d = Date(2018, 3, 30)
print format(d, 'ymd')
print format(d,'mdy')
print format(d,'dmy')
—->>结果
2018-3-30
3/30/2018
30-3/2018
小结一下:
1.format通过位置符号显示字符串
format后的括号内数字对应前边花括号的索引号
print "{0}:{1}:{1}".format(1,2)
--->>结果
1:2:2
print "{0}:{1}:{2}-{2}".format(1,2,3)
--->>结果
1:2:3-3
2.使用名称显示字符串
print 'max:{max}\t\tmin:{min}'.format(min=2,max=4)
---->>结果
max:4 min:2
3.通过属性显示字符串
class Book(object):
def __init__(self,name,author,state,bookindex):
self.name=name
self.author=author
self.state=state
self.bookindex=bookindex
def __str__(self):
return 'book({d.name},{d.author},{d.state},{d.bookindex})'.format(d=self)
b=Book('python','laoli',1,'J90')
print b
----->>
book(python,laoli,1,J90)
#4. 格式化元组的具体项
a=(1,2)
print 'x:{0[0]}\ty:{0[1]}'.format(a)
---->>>
x:1 y:2
goods = [
("001", 'computer', 100, 4000),
("002", 'apple', 1000, 4),
("003", 'xiaomi', 100, 3000),
]
fmt= '商品编号:{0[0]}\t商品名称:{0[1]}\t价格:{0[2]}\t数量:{0[3]}'.format
for i in map(fmt,goods):
print i
—->>
商品编号:001 商品名称:computer 价格:100 数量:4000
商品编号:002 商品名称:apple 价格:1000 数量:4
商品编号:003 商品名称:xiaomi 价格:100 数量:3000