首页 >后端开发 >Python教程 >如何重写`__str__`和`__repr__`来自定义类实例的打印输出?

如何重写`__str__`和`__repr__`来自定义类实例的打印输出?

Susan Sarandon
Susan Sarandon原创
2025-01-03 04:45:38503浏览

How to Override `__str__` and `__repr__` for Customized Print Output of Class Instances?

如何使用 print() 自定义类实例的字符串表示

打印类的实例时,默认行为通常会显示对象的内存位置。要自定义字符串表示形式并控制打印时显示的内容,您可以实现两种特殊方法: str 和 __repr__。

__str__:定义人类可读的字符串表示形式

str 方法定义了一般对象的字符串表示形式 使用。当您在对象上调用 print() 或 str() 时,会调用它。通过重写 __str__,您可以定义打印时显示的自定义输出。

__repr__:定义用于调试的字符串表示形式

repr方法定义用于调试目的的字符串表示形式。当您在对象上调用 repr() 或未定义 str__ 时,会调用它。 __repr 表示形式应该是计算结果为对象的有效 Python 表达式。

示例

要自定义类实例的字符串表示形式:

class Test:
    def __init__(self):
        self.a = 'foo'

    def __str__(self):
        return "member of Test"

    def __repr__(self):
        return "Test()"

在上面的例子中:

  • 当您打印对象时,str 方法返回一个人类可读的字符串,“Test 成员”。
  • repr 方法返回一个有效的 Python 表达式,“Test ()”,这将重新创建该对象。

当您打印此实例时class:

t = Test()
print(t)

它将在控制台上显示“Test 成员”,提供自定义且有意义的表示。

以上是如何重写`__str__`和`__repr__`来自定义类实例的打印输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn