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

标签 python class printing object

当我尝试 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/

相关文章:

c++ - 如何使用 cout << myclass

wpf - 从 WPF 打印/报告的最佳方法是什么?

c++ - 如何在 Windows CE Direct-X 应用程序中显示(打印机)对话框?

python - 如何在每个月底运行 Celery 定期任务

python - 具有不同颜色编码和不同标记的 Sns 散点图

Java:如何在静态方法中创建对象并调用另一个类的方法?

python - 在没有空格的python中打印列表

python - 使用 DataFrame 合并(连接)4 个具有不同 ID 和多个值的不同 CSV 文件

python - Django刷新页面

javascript - 使用方法扩展类是一个好习惯吗?