自定制format方法之__format__

# 自定制format方法
# class Date:
#     def __init__(self,year,mon,day):
#         self.year=year
#         self.mon=mon
#         self.day=day
#
# d1=Date(2001,12,30)
#
#
# X="{0.year}:{0.mon}:{0.day}".format(d1)
#
# print(X)
# print(d1.__dict__)




# class Date:
#     def __init__(self,year,mon,day):
#         self.year=year
#         self.mon=mon
#         self.day=day
#     def __format__(self, format_spec):
#         print("执行")
#         return "{0.year}:{0.mon}:{0.day}".format(self)
#
# d1=Date(2001,12,30)
# format(d1)
# print(format(d1))

format_dic={
    "ymd":"{0.year}{0.mon}{0.day}",
    "mdy":"{0.mon}-{0.day}-{0.year}",
    "y:m:d":"{0.year}:{0.mon}:{0.day}"
}


class Date:
def __init__(self,year,mon,day):
self.year=year
self.mon=mon
self.day=day
def __format__(self, format_spec):
print("执行")
if not format_spec or format_spec not in format_dic:
format_spec="ymd"
fm=format_dic[format_spec]
return fm.format(self)

d1=Date(2001,12,30)
format(d1)
print(format(d1))
print(format(d1,"y:m:d"))

 

posted @ 2020-08-19 18:40  自学随笔  阅读(33)  评论(0)    收藏  举报