首页 > 解决方案 > 如何返回 Python 类的字符串表示形式?

问题描述

对于 Python 编程练习,我需要创建一个具有属性节点和边的类 Graph。这两个属性都是列表。边列表是元组列表,其中元组的两个元素都是节点列表集合的元素。例如,如果 g 是 Graph,则 g 的有效总体将是:g.nodes = [1,2,3,4] 和 g.edges = [(1,2),(2,3),( 3,4),(4,1)]

我必须创建一个名为 add_node(self, node) 的方法,它将一个节点添加到节点列表中,并创建一个名为 add_edge(self, edge) 的方法,该方法将边添加到边列表中,前提是边是一个元组并且两者元组的元素在节点列表中。如果添加了边,add_edge 返回 True,否则返回 False。

我写了以下代码:

class Graph:
def __init__(self):
    self.nodes = []
    self.edges = []
    
def add_node(self, node):
    self.nodes.append(node)
            
def add_edge(self, edge):
 if not isinstance(edge, tuple):
     return False
 
 for i in edge:
     if not i in self.nodes:
         return False
 else:
     self.edges.append(edge)
 return True

现在我必须返回类 'Graph' 的字符串表示形式,看起来像这样的 '(,)'。我怎样才能做到这一点?

标签: pythonpython-3.x

解决方案


重写你的 add_edge 方法如下:

def add_edge(self, edge):
    if isinstance(edge, tuple) and edge[0] in self.nodes and edge[1] in self.nodes:
        self.edges.append(edge)
        return True
    return False

推荐阅读