python - 如何返回 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' 的字符串表示形式,看起来像这样的 '(,)'。我怎样才能做到这一点?
解决方案
重写你的 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
推荐阅读
- node.js - 无法写入工作区设置,因为 .. 不是注册配置
- java - 将图像转换为 base64 kotlin 时出现 FileNotFoundException
- javascript - 如何将 JSON 日期类型中的此预请求脚本转换为时间类型
- python - 如何在dict中获取特定的键值
- java - 如何构建可执行的 JavaFX 11 应用程序
- javascript - PHP 和 Javascript 交叉兼容的序列化器
- python - 如何在网格上聚类一组 3D 点?
- python - 比较两个数据框,如果电子邮件相同,则替换唯一 ID
- sql - SQL:过去 6 个月内不同月份的 4 次转移以及 Teradata SQL 中标题中的特定单词?
- html - 如何在包装器 div 中证明 div 的合理性?