首页 > 后端开发 > Python教程 > 如何在 Python 中自定义打印类实例的输出?

如何在 Python 中自定义打印类实例的输出?

Patricia Arquette
发布: 2024-12-17 01:11:25
原创
551 人浏览过

How can I customize the output of printing a class instance in Python?

打印时自定义类实例表示

尝试打印类的实例时,您可能会遇到默认表示,例如内存地址。要自定义类实例的打印外观,请深入研究 __str__ 和 __repr__ 的概念。

__str__ 方法

通过在类中定义 __str__ 方法,您可以可以控制打印时实例的表示方式。此方法应返回一个包含所需显示文本的字符串。例如:

>>> class Test:
>>>     def __init__(self):
>>>         self.a = 'foo'
>>>     def __str__(self):
>>>         return f"Test with a: {self.a}"
登录后复制

现在,在打印此类的实例时,您将获得自定义字符串表示形式:

>>> t = Test()
>>> t
Test with a: foo
>>> print(t)
Test with a: foo
登录后复制

__repr__ 方法

定义后的 __repr__ 方法在使用 repr() 函数打印时优先于 __str__或在交互式提示中。它旨在提供更详细的表示,适合调试或重建。如果您定义 __repr__ 而不使用 __str__,它也将作为打印表示。

例如:

>>> class Test:
>>>     def __init__(self):
>>>         self.a = 'foo'
>>>     def __repr__(self):
>>>         return f"Test(a={self.a})"
登录后复制

打印时:

>>> t = Test()
>>> t
Test(a='foo')
>>> repr(t)
"Test(a='foo')"
登录后复制

总结:

要自定义类实例的打印表示,请定义一个__str__ 方法用于所需的显示文本,或 __repr__ 方法用于详细表示。如果两者都定义了,__str__ 用于打印,而 __repr__ 用于 repr() 函数。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板