Python基本特殊方法之__format__

__format__()方法__format__()传参方法:someobject.__format__(specification)specification为指定格式,当应用程序中出现&quo

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Python基本特殊方法之__format__此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“”,获取验证码。在微信里搜索“”或者“”或者微信扫描右侧二维码都可以关注本站微信公众号。

__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"))
    

Python基本特殊方法之__format__

  例:格式化对象中的集合

#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))
    

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120192.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 世纪之战:Python和Java,到底学哪个更好?

    世纪之战:Python和Java,到底学哪个更好?零基础自学java,点击了解:https://how2j.cn本文章转载自(如有侵权联系我删除):微信公众号Java技术栈有人曾经将编程比作做菜,那编程语言就是首先要准备的食材或厨具。尽管在刚开始开发AI时,有很多编程语言都可以满足你的需求,但没有一种编程语言是可以一站式解决AI编程的问题,因为在每一个项目中,不同的目标需要特定的方法。和做菜时的精挑细选一样,在成为一个「高手」…

  • SD/MMC卡介绍

    SD/MMC卡介绍1.1.什么是MMC卡MMC:MMC就是MultiMediaCard的缩写,即多媒体卡。它是一种非易失性存储器件,体积小巧(24mm*32mm*1.4mm),容量大,耗电量低,传输速度快,广泛应用于消费类电子产品中。1.2.什么是SD卡SD:SD卡为SecureDigitalMemoryCard,即安全数码卡。它在MMC的基础上发展而来,增加

  • 详解 Pytorch 实现 MNIST[通俗易懂]

    MNIST虽然很简单,但是值得我们学习的东西还是有很多的。项目虽然简单,但是个人建议还是将各个模块分开创建,特别是对于新人而言,模块化的创建会让读者更加清晰、易懂。CNN模块:卷积神经网络的组成;train模块:利用CNN模型对MNIST数据集进行训练并保存模型test模块:加载训练好的模型对测试集数据进行测试cnn.pt:train的CNN模型注意!有GPU的小伙伴尽量使用GPU训练,GPU的训练速度比CPU的训练速度高许多倍,可以节约大量训练时间CNN模块MN

  • hashmap线程安全吗 什么解决方案_HashMap的底层实现原理

    hashmap线程安全吗 什么解决方案_HashMap的底层实现原理我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,应该使用ConcurrentHashMap,但是其线程不安全体现在什么地方,可能并没有深入理解,本文将对该问题进行解密。

    2022年10月29日
  • 摘抄自知乎–由华为裁员传闻引发的思考:年轻人如何避免中年危机?

    摘抄自知乎–由华为裁员传闻引发的思考:年轻人如何避免中年危机?原文:https://www.zhihu.com/question/56419319回答者:王辰—-部分摘抄—- HelloJohn: 记得自己的来处,可能不是件坏事。你是知道我的来处的,其他的人,想写我的过去都不那么准确。 他们说我的工作是从9点到5点的,其实从来就不是9点到5点。事实上…

  • sublime插件合集「建议收藏」

    sublime插件合集「建议收藏」本文系转载,原文地址:http://www.xuanfengge.com/practical-collection-of-sublime-plug-in.html版权归 轩枫阁 所有本文标题:实用的sublime插件集合–sublime推荐必备插件转载请务必注明出处,小生将不胜感激,谢谢!喜欢本文或觉得本文对您有帮助,请分享给您的朋友^_^

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号