Python小技巧:__str__()的妙用
创始人
2024-05-15 22:16:26
0

在这里插入图片描述

前言

这里是Python小技巧的系列文章。这是第三篇,object.__str__(self)方法的妙用。

书接上回,这次还是介绍Python类的内置方法,__str__()

据官方文档的介绍,在使用 str(object) 、format() 和 print() 的时候会调用__str__() 方法,该方法会将实例转换为字符串,返回值为 字符串 对象。
如果__str__()没有被定义,就会调用 object.__repr__()

实现 str 方法来定制一个类的实例的字符串表示。

知识点📖📖

object.__str__(self)https://docs.python.org/zh-cn/3.8/reference/datamodel.html?object.repr
object.__repr__(self)https://docs.python.org/zh-cn/3/reference/datamodel.html?object.repr

关于__repr__(),基本用不上。建议查看官方文档,粗略了解即可。


先来看一组简单的代码(这个类没有实现任何功能

"""demo.py"""class Nothing:...if __name__ == "__main__":print(Nothing())	# <__main__.Nothing object at 0x000002C2CFD06650> 0x2c2cfd06650

默认的打印结果是当前类的实例的名称和内存地址,如下图所示(不夸张地说,这个类实例的打印可以说是毫无用处!!!

在这里插入图片描述

剖析

在代码复杂的情况下,再打印默认的类实例,那就显得太鸡肋了。
这个时候我们就需要重写 __str__()方法了,使得它更加人性化。

再来看一组复杂点的代码

"""demo.py"""class Nothing:name = 'frica'age = 20def __str__(self):return f'Nothing(name={self.name}, age={self.age})'if __name__ == "__main__":print(Nothing())

代码执行效果如下:

在这里插入图片描述

重写 __str__() 后与 默认打印的类实例对比如下图所示:

  • 孰优孰劣一目了然

在这里插入图片描述

后话

本次介绍及重写了 __str__(),在重写之后,可以更为方便且准确的描述信息类实例的信息,这对于我们的编程工作是有帮助的。

本次分享到此结束!🐱‍🏍🐱‍🏍

相关内容

热门资讯

70岁婆婆因交通事故身亡,身上... 10月11日,四川广安市公安局交通管理支队直属一大队发布一则“认尸启事”,一周前,一位70岁左右的老...
男子参加发小婚礼饮酒后死亡 家... 男子葛某南受发小邀请参加婚礼,在参加下礼人员宴席聚餐饮酒后死亡。事后,葛某南家属将新郎及其亲友等8人...
队记:杨瀚森不如克林根 再不行... 10月12日,开拓者记者Mike Richman和Conor Bergin在播客节目Locked O...
辩护律师如何尽职尽责? 我有国内各地的律师好友,如果你要寻找外地律师合作,请加我微信(hzm5349),我帮你推荐;如果你想...
0-1!马宁罚下一人,印尼耻辱... 北京时间10月12日凌晨,世预赛亚洲区第四阶段第2轮迎来了两场比赛,阿联酋男足2-1逆转阿曼男足,伊...
同曦总经理:郭昊文休赛期拒绝了... 视频来源:@Eric许涛 10月12日消息,在@Eric许涛的单挑视频中,南京同曦总经理王震透露,同...
盘点有实力的刑事诉讼律师,北京... 权威之选:北京吴敬律师,引领刑事诉讼辩护新风尚 在刑事诉讼领域,专业、靠谱的律师是当事人及其家属在困...
昆明市呈贡区构建“1+N”人才... 央广网昆明10月11日消息(记者 魏文青)10月11日,昆明市呈贡区召开“1+N”人才政策解读新闻发...
广东省人民代表大会常务委员会关... 广东省第十四届 人民代表大会常务委员会 公 告 (第58号) 《广东省人民代表大会常务委员会关于修改...
广东省人民代表大会常务委员会关... 广东省第十四届人民代表大会常务委员会 公 告 (第56号) 《广东省人民代表大会常务委员会关于废止〈...