我想__eq__()为自定义类实现一个方法Vertex。
然而,当我仔细思考这个问题时,我发现它很奇怪。
例如
class Vertex():
def __init__(self,node):
self.id = node
self.adjacent = {}
但是对于相邻的dict,它存储这样的数据:
{neighbour_vertex1 : edge, neighbour_vertex2 : edge, ....}
如果我想实现该__eq__()方法,它应该如下所示:
def __eq__(self,other):
return self.id == other and self.adjacent == other.adjacent
但self.adjacent == other.adjacent需要比较字典
{neighbour_vertex1 : edge, neighbour_vertex2 : edge, ....}
{neighbour_vertex1 : edge, neighbour_vertex2 : edge, ....}
为了比较它们,我必须定义neighbout_vertex确实是 class 实例的比较函数Vertex。
我认为这就像一个先有鸡还是先有蛋的问题,任何建议都值得赞赏。
呼啦一阵风
相关分类