📜  python __repr__ 含义 - Python (1)

📅  最后修改于: 2023-12-03 15:18:53.613000             🧑  作者: Mango

Python中的__repr__方法

在Python中,__repr__是一个魔术方法,当你通过print或者str函数将一个对象输出时,__repr__方法会被自动调用以返回一个字符串表示。

为什么要实现__repr__方法

实现__repr__方法有很多好处:

  1. 更友好的输出方式

有时候,对象的默认输出方式并不是很友好,可能是一个地址或者一些无用的信息。通过实现__repr__方法,我们可以定制该对象的输出方式,使其更加友好,方便我们查看和调试。

  1. 节省调试时间

如果你需要调试代码,你可能需要将一些变量输出来观察其值,这时候如果对象没有实现__repr__方法,你将不得不手动地打印它们的值,这无疑会浪费你很多时间。而实现了__repr__方法,你可以直接print这些对象,方便快捷。

  1. 将对象转换为可执行代码

有时候,你可能需要将一个对象保存到文件或者数据库中,如果该对象实现了__repr__方法,你可以将其输出成可执行的Python代码,方便下次直接从文件中读取并恢复对象。

如何实现__repr__方法

要实现__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__方法中使用格式化字符串并将对象的属性信息输出即可。