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

打印用户定义类的对象列表

熊嘉茂
2023-03-14
问题内容

所以我有一堂课,叫做Vertex

class Vertex:
    '''
    This class is the vertex class. It represents a vertex.
    '''

    def __init__(self, label):
        self.label = label
        self.neighbours = []

    def __str__(self):
        return("Vertex "+str(self.label)+":"+str(self.neighbours))

我想打印此类的对象列表,如下所示:

x = [Vertex(1), Vertex(2)]
print x

但是它显示了这样的输出:

[<__main__.Vertex instance at 0xb76ed84c>, <__main__.Vertex instance at 0xb76ed86c>]

实际上,我想打印Vertex.label每个对象的值。有什么办法吗?


问题答案:

如果只想为每个对象打印标签,则可以使用循环或列表理解:

print [vertex.label for vertex in x]

但是要回答您的原始问题,您需要定义__repr__方法以正确获得列表输出。它可能像这样简单:

def __repr__(self):
    return str(self)


 类似资料:
  • 问题内容: 就像我们使用__ToString一样,有没有一种方法来定义铸造方法? 问题答案: 无需在php中键入强制类型转换。 编辑: 由于这个话题似乎引起一些混乱,我想我要详细说明一下。 在Java之类的语言中,有两种可能带有类型。编译器有一个关于类型的概念,而运行时还有一个关于类型的想法。编译器的类型与变量相关,而运行时引擎则跟踪值的类型(已将其分配给变量)。变量类型在编译时是已知的,而值类型

  • 使用 Photoshop,您可以打印任何兼容的 3D 模型,而无需担心 3D 打印机的限制。在准备打印时,Photoshop 会自动使 3D 模型防水。Photoshop 还会生成必要的支撑结构(支架和底座),以确保您的 3D 打印能够成功完成。 准备打印 3D 对象 选择“窗口”>“工作区”>“3D”以切换到 3D 工作区。 在 Photoshop 中打开 3D 模型。如果需要,请在打开 3D

  • 问题内容: 我是Java的新手。我说,我有一个类 人 。我要列印 上面的代码给出如下输出: 这有什么意义? 该对象是否具有某种唯一标识? 我可以自定义吗?我的意思是编写自己的函数,该函数在打印时会输出? 如果是这样,我该怎么做? 问题答案: 如果要打印任何对象的有意义的内容,则必须实现自己的方法,该方法将覆盖parent()类的方法。默认情况下,所有类(无论您创建什么)都扩展类。 样例代码: 输出

  • 如果我使用一个,其中键是定义类的对象,那么HashMap还会提供O(1)性能吗? 我认为它不应该给O(1)性能,因为用户定义对象的哈希键只返回键的地址,所以会有更多的冲突。

  • 我有这样一堂课: 在主要我已经创建了一个包含所有主题的列表。 现在我想打印所有参加课程的学生的所有科目名称。 我试过这样的方法,但它给了我错误: 参数类型字符串void的运算符未定义 我不知道如何使第二个流返回每个学生的和的字符串。我可以将它映射到字符串,然后以某种方式收集它吗?第一个流中的类似内容?

  • 无法打印java中对象类型列表中的不同值。这是我当前的解析器代码,我正在检查重复值。 在下面的代码中,我试图从newList中获取唯一值。 XML-示例 下面是学生pojo类,同样有一个地址pojo类有addrress细节,公司类有学生列表