1。简介在学习面向对象的时候,我们知道python中有一种特殊的方法,叫做magicmethod。该方法的特点如下:1.方法定义总是以两个下划线开始,以两个下划线结束:如__init__、__str__和__repr__2.这种方法一般不需要手动调用。它会在满足特定条件时自动调用。我们可以成为通话时间。学习2020年黑马程序员的python基础教程。Python中有两个神奇的方法用来描述对象信息,__str__和__repr__,那么为什么要定义这两个方法呢?其实他们设计的目的是不同的:1.__repr__的目标是准确性,或者说,__repr__的结果是供解释器使用的。2、__str__的目标是可读性,或者说,__str__的结果是给人看的。2、下面分析一下,仔细看看它们的用法:不重写__str__和__repr__,打印对象的输出结果不是很友好,是对象的内存地址,也就是id的结果。#定义Person类classPerson(object):def__init__(self,name):self.name=namep=Person("isaac")复制代码下面是测试输出的结果:>>>print(p)<__main__。Person对象位于0x10f29b940>>>>p<__main__。0x10f29b940>'复制代码输出的结果不是我们想要的结果。这时候,我们重写__str__和__repr__方法。2.1重写__str__方法#定义Person类classPerson(object):def__init__(self,name):self.name=namedef__str__(self):return"__str__method"+self.namep=Person("isaac")复制代码下面是测试结果:>>>print(p)__str__methodisaac>>>str(p)'__str__methodisaac'>>>f"{p}"'__str__methodisaac'>>>p.__str__()'__str__方法isaac'>>>p
