给出一个有向networkx图。我想要一个函数,比如“abc()
”,为从图中删除的每个节点调用。我浏览了networkx文档,但没有找到任何这样的回调功能。在
我的想法是:
abc()
的调用添加到与节点关联的对象的__del__()
(解构器)方法。然而,除了使用__del__()
(参见例如here)的缺陷之外,如果内存中某个地方存在指向节点对象的链接,这种方法就不起作用了。在networkx.DiGraph()
类并重写remove\u node()方法。缺点:这将需要重写所有删除节点的方法,例如remove_nodes_from
(还有其他方法吗?)在del
函数的解决方案。不过,深入networkx进行干预似乎不合适。在实现每次删除networkx节点时调用的回调函数的最简单方法是什么?在
在这种情况下,您只需要将两个方法子类化。这里有一个例子 从networkx导入有向图
这不会像有向图类中的原始方法那样快(尤其是remove_nodes_from()),但除非您有非常大的图,否则它可能不太重要。如果需要更好的性能,可以直接从这些方法复制代码,而不是调用超类。在
相关问题 更多 >
编程相关推荐