我有一个简单的图形,想要创建一个方法“get_edge”,它将两个顶点作为参数,如果存在则返回它们之间的边,否则为None。这是我尝试过的一小部分内容。它不起作用,因为它当前创建了一个对象,而不是检查是否已存在一个对象。编写get_edge()的最简单方法是什么?
def add_edge(self, e): """Adds and edge to the graph by adding an entry in both directions. If there is already an edge connecting these Vertices, the new edge replaces it. """ v, w = e self[v][w] = e self[w][v] = e def get_edge(self, v1, v2): try: Edge(v1, v2) print 'Edge exists' except: print 'Edge does not exist' return None
答案 0 :(得分:1)
我怀疑你想要这样的东西:
def get_edge(self, v1, v2):
try:
e = self[v1][v2] # order shouldn't matter
print("edge exists")
return e
except KeyError:
print("edge does not exist")
return None
我假设您的课程源自dict
或者__getitem__
方法有效,并且如果您要求不存在的密钥,则会引发KeyError
。如果您不需要print
语句(也就是说,它们仅用于调试),您可以取消e
变量并直接返回结果。