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

54 阅读1分钟

内容来自 DOC https://q.houxu6.top/?s=如何使用 print() 打印类实例?

当我尝试使用 print() 打印一个类的实例时,我得到的输出是这样的:

>>> class Test():
...     def __init__(self):
...         self.a = 'foo'
...
>>> print(Test())
<__main__.Test object at 0x7fc9a9e36d60>

如何让 print 显示一些自定义的内容(例如包含 a 属性值的内容)?也就是说,如何定义当类被打印时(它们的 字符串表示)会出现什么?


如果你想要为类本身定义行为(在这种情况下,即让 print(Test) 显示一些自定义的内容,而不是 <class __main__.Test> 或类似的内容),可以参考这个链接。实际上,技巧是基本相同的,但应用起来更棘手。