Python基本特殊方法之 您所在的位置:网站首页 python之format Python基本特殊方法之

Python基本特殊方法之

2023-04-01 07:11| 来源: 网络整理| 查看: 265

__format__()方法

  __format__()传参方法:someobject.__format__(specification)

  specification为指定格式,当应用程序中出现"{0:specification}".format(someobject)或format(someobject, specification)时,会默认以这种方式调用

  当specification为" "时,一种合理的返回值是return str(self),这为各种对象的字符串表示形式提供了明确的一致性

  注意,"{0!s}".format()和"{0!r}".format()并不会调用__format__()方法,他们会直接调用__str__()或者__repr__()

  例:自定义我们自己的__format__()格式

#coding=utf-8 class formatest: def __init__(self, name, age): self.name,self.age = name, age def __format__(self,specification): if specification == "": return str(self) strformat = specification.replace("%s",self.name).replace("%r",self.age) return strformat if __name__ == "__main__": people = formatest("zhanglin", "31") print ("{}".format(people)) print ("{0:%s-%r}".format(people)) print (format(people, "%s-%r"))

  例:格式化对象中的集合

#coding=utf-8 class people: def __init__(self, name, age): self.name,self.age = name, age def __format__(self,specification): if specification == "": return str(self) strformat = specification.replace("%s",self.name).replace("%r",self.age) return strformat class hand: def __init__(self, *people): self.peoples = [] self.peoples= list(people) def __format__(self, specification): if specification == "": return str(self) return ",".join("{:{fs}}".format(c, fs=specification) for c in self.peoples) if __name__ == "__main__": handobj = hand(people("zhangsan", "18"), people("lisi", "28"), people("zhanglin", "38")) print ("{:%s-%r}".format(handobj))

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有