当前位置: 首页 > 面试题库 >

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

任宾鸿
2023-03-14
问题内容

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

<__main__.Foobar instance at 0x7ff2a18c>

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

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


问题答案:
>>> 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()功能时(或在交互式提示下查看它时)发生的事情。如果这不是最Python化的方法,我深表歉意,因为我也在学习-但这确实可行。

如果未提供任何__str__方法,Python将__repr__改为打印结果。如果定义__str__但没有__repr__,Python将使用你所看到的上面的__repr__,但仍使用__str__打印。



 类似资料:
  • 本章介绍如何在电子表格中设置打印区域。 通常的打印区域是Excel电子表格中从左上角到右下角。 打印区域可根据您的要求定制。 这意味着您可以从整个电子表格中打印特定范围的单元格,自定义纸张大小,打开打开网格线的内容等。 以下代码用于在电子表格上设置打印区域。 import java.io.File; import java.io.FileOutputStream; import org.apach

  • 报表填充过程JasperPrint objects的输出可以使用内置的查看器组件查看,或打印,或导出为更流行的文档格式,如PDF,HTML,RTF,XLS,ODT,CSV或XML。 本章将讨论查看和打印Jasper文档,下一章将讨论导出,即“导出报告”。 查看报告 JasperReport提供了一个内置的查看器,用于以原始格式查看生成的报告。 它是一个基于swing的组件,其他Java应用程序可以

  • 我使用cmd并键入“chrome--headless--disable-gpu--print-to-pdf=d:\project\test.pdf http://localhost:8085/t1/index.html?data=http://localhost:8085/1/mock.json” 生成的pdf为空。我想原因是我使用了fetch来获取mock.json和 dom没有足够的时间完全呈

  • 举个例子 我想要一个进度条,然后下面打印我想要的内容 如题

  • 问题内容: 如果我想在Python中打印多行文本而不用为每一行都键入内容,是否有办法做到这一点?我将其用于ASCII艺术。 (Python 3.5.1) 问题答案: 您可以使用三引号(单引号或双引号):

  • 问题内容: 我想使用PDFBox打印 由iText创建的 PDF文件 。我已经使用PDDocument类及其方法print()成功尝试了此操作。您可以在此处找到文档: http //pdfbox.apache.org/apidocs/。 (我正在使用此代码:) 方法print()很好用,但是 有一个问题:当我需要打印多个文件时,该方法要求我为每个文档选择打印机。 有什么办法只能设置一次打印机吗?