Python进阶-----通过类的内置方法__format__自定制格式化字符串

Posted Meanwey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python进阶-----通过类的内置方法__format__自定制格式化字符串相关的知识,希望对你有一定的参考价值。

__format__方法可以自定格式化字符串,不定义的话会执行默认格式
format(obj) 等同于--> obj.__format__

format_dic = {
    y-m-d:{obj.year}-{obj.mon}-{obj.day},
    d/m/y:{obj.day}/{obj.mon}/{obj.year}
}
class Date:
    def __init__(self,year,mon,day):
        self.year = year
        self.mon = mon
        self.day = day
    def __format__(self, format_spec):   #自定制格式化
        if not format_spec or format_spec not in format_dic:  #用于判断用于是否输入格式信息或者输入的不在格式信息字典内
            format_spec = y-m-d                             #制定默认格式
        fm = format_dic[format_spec]                          #通过格式字典取到对应的值
        return fm.format(obj = self)                      #‘{obj.year}-{obj.mon}-{obj.day}‘.format(obj) obj应是实例化对象

d = Date(2018,10,14)
x = format(d,y-m-d)
print(x)        #2018-10-14

 


以上是关于Python进阶-----通过类的内置方法__format__自定制格式化字符串的主要内容,如果未能解决你的问题,请参考以下文章

Python进阶-----通过类的内置方法__str__和__repr__自定制输出(打印)对象时的字符串信息

Python进阶-----类的内置方法__getattribute__

Python之路(第二十六篇) 面向对象进阶:内置方法

铁乐学python_day24_面向对象进阶1_内置方法

python进阶之内置函数和语法糖触发魔法方法

python进阶之类常用魔法方法和魔法属性