# 自定义format函数返回值 # 用字典定义格式 format_dic = { "ymd":"{0.year}{0.mon}{0.day}", "m:y:d":"{0mon}{0.day}{0.year)", "y-m-d":"{0.year}-{0.mon}-{0.day}" } class Form: def __init__(self,year,mon,day): self.year = year self.mon = mon self.day = day def __format__(self, format_spec): print("format_spec = %s"%format_spec) if not format_spec or format_spec not in format_dic: # 如果分隔符为空或字典中不存在 format_spec = "ymd" # 返回默认格式 fm = format_dic[format_spec] return fm.format(self) date = Form("2013","11","3") # date.__format__(date) # 也可以调用 print(format(date,"ymd")) print(format(date,"y-m-d")) print(format(date,"y--m--d")) # 输入字典中没有的格式返回默认的格式 # __slots__ 优点在于省内存 还可以限制属性创建 # 缺点:由于最后实例在于操作字典 这个方法会直接取消掉 慎用 # class slo: # __slots__ = ["name","age"] # # s = slo() # s.name = "lol" # s.age = 10 # s.run = 1 # 没有定义直接报错 # __doc__ 类属性 子类不可以继承 (创建类的时候 类会自动创建 所以调用的话 会先从自己的字典中寻找) class Superclass: '父类' pass class Son(Superclass): pass s = Son print(s.__dict__) # {'__module__': '__main__', '__doc__': None} print(Superclass.__dict__) # {'__module__': '__main__', '__doc__': '父类', '__dict__': # <attribute '__dict__' of 'Superclass' objects>, '__weakref__': # <attribute '__weakref__' of 'Superclass' objects>}
__format__函数 __slots__函数 __doc__函数
最新推荐文章于 2020-12-04 14:28:50 发布