小编典典

如何使用 print() 打印类的实例?

all

我正在学习 Python 的诀窍。当我尝试 Foobar 使用该 print() 函数打印类对象时,我得到如下输出:

<__main__.Foobar instance at 0x7ff2a18c>

有没有办法可以设置 及其 对象的 打印行为 (或 字符串表示形式 )?例如,当我调用一个类对象时,我想以某种格式打印它的数据成员。如何在
Python 中实现这一点? print()

如果您熟悉 C++ 类,则可以通过为该类 ostream 添加方法来实现上述标准。 friend ostream& operator << (ostream&, const Foobar&)


阅读 86

收藏
2022-03-03

共1个答案

小编典典

>>> class Test:
...     def __repr__(self):
...         return "Test()"
...     def __str__(self):
...         return "member of Test"
... 
>>> t = Test()
>>> t
Test()
>>> print(t)
member of Test

__str__方法是在您打印它时发生的调用,该__repr__方法是在您使用该repr()函数时发生的(或者当您使用交互式提示查看它时)。

如果没有__str__给出方法,Python 将打印结果__repr__。如果您定义__str__但未定义__repr__,Python
将使用您在上面看到的作为__repr__,但仍__str__用于打印。

2022-03-03