自定义格式化方式format

 1 format_dic = {              #创建日期模式字典
 2     'ymd':'{0.year}{0.month}{0.day}',        #0.xx可以,a.xx不行?
 3     'mdy':'{0.year}:{0.month}:{0.day}',
 4     'ymdo':'{0.year}-{0.month}-{0.day}'
 5 }
 6 class Foo:
 7     def __init__(self,year,month,day):
 8         self.year = year
 9         self.month = month
10         self.day = day
11     def __format__(self, format_spec):                #传入的'ymdo'将会赋值给format_apec
12         # print('This is format')
13         if not format_spec or format_spec not in format_dic:    #判断,如果用户没输入则默认是'ymd',输入错误也是默认'ymd'
14             format_spec = 'ymd' 
15         # fm = format_dic[format_spec]                #通过字典format_dic将format_apec对应的value取出
16         # return fm.format(self)                    #返回出去
17         return  format_dic[format_spec].format(self)          #同上
18 
19 f1 = Foo(2018,11,11)
20 print(format(f1,"ymdo"))

 补充一点format以防忘记

1 f1 = Foo(2018,11,11)
2 print(format(f1,"ymdo"))
3 a = '{1}qwer{0}'.format('XX','QQ')
4 print(a)
5 a = '{1}qwer{0}'
6 a = a.format('XX','YY')
7 print(a.format('XX','YY'))      #YYqwerXX
8 print(a)                        #YYqwerXX

猜你喜欢

转载自www.cnblogs.com/humanskin/p/9151473.html