当我尝试 print
类的实例时,我得到如下输出:
>>> class Test():
... def __init__(self):
... self.a = 'foo'
...
>>> print(Test())
<__main__.Test object at 0x7fc9a9e36d60>
如何定义类及其实例的打印行为(或字符串表示)?例如,引用上面的代码,如何修改 Test
类,使 print
实例显示 a
值?
最佳答案
>>> 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__
用于打印。
关于python - 如何使用 print() 打印类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1535327/