📅  最后修改于: 2023-12-03 15:18:53.613000             🧑  作者: Mango
在Python中,__repr__是一个魔术方法,当你通过print或者str函数将一个对象输出时,__repr__方法会被自动调用以返回一个字符串表示。
实现__repr__方法有很多好处:
有时候,对象的默认输出方式并不是很友好,可能是一个地址或者一些无用的信息。通过实现__repr__方法,我们可以定制该对象的输出方式,使其更加友好,方便我们查看和调试。
如果你需要调试代码,你可能需要将一些变量输出来观察其值,这时候如果对象没有实现__repr__方法,你将不得不手动地打印它们的值,这无疑会浪费你很多时间。而实现了__repr__方法,你可以直接print这些对象,方便快捷。
有时候,你可能需要将一个对象保存到文件或者数据库中,如果该对象实现了__repr__方法,你可以将其输出成可执行的Python代码,方便下次直接从文件中读取并恢复对象。
要实现__repr__方法,只需在类中定义即可,该方法接受一个self参数并返回一个字符串。在字符串中,我们可以使用格式化字符串来将对象的属性输出到字符串中。
下面是一个示例代码:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name='{self.name}', age={self.age})"
上面的代码中,我们实现了一个Person类,并重写了其__repr__方法。该方法返回一个格式化的字符串,其中包含了该对象的属性信息。
接下来,我们来看一下如何调用__repr__方法:
p = Person('John', 30)
print(p)
输出:
Person(name='John', age=30)
我们可以看到,输出结果已经非常友好了,包含了该对象的属性信息。
实现__repr__方法可以帮助我们更好地输出对象,方便观察和调试,同时还可以将对象输出成可执行的Python代码。为了实现一个友好的输出效果,我们只需要在__repr__方法中使用格式化字符串并将对象的属性信息输出即可。