我想要比较两个DiGraph
个对象。我已经看了is_isomorphic
,但它不符合我的需要,因为它只允许访问节点属性而不是节点本身,我想比较节点本身(使用他们的__eq__
方法)并返回True
如果所有节点和边都相等(我知道这个问题没有有效的算法,但我不介意我的问题的效率)。
这里要澄清一个代码示例,我正在寻找一个类似于are_graphs_equal的函数:
class MyClass(object):
def __eq__(self, other):
return True
x = MyClass()
y = MyClass()
g1 = DiGraph()
g2 = DiGraph()
g1.add_node(x, fill='red')
g2.add_node(y, fill='blue')
are_graphs_equal(g1, g2) # should return True
g1 = DiGraph()
g2 = DiGraph()
g1.add_path(y, x)
g2.add_path(x, y)
are_graphs_equal(g1, g2) # should return False since edges are different.
为了问题,假设MyClass
是可以播放的。
谢谢!