<p>应该可以通过子类化<strong>Graph</strong>类并提供用户定义的工厂函数来扩展networkx。
这些函数可以查询数据库并将结果缓存到networkx使用的字典中。在</p>
<p>我在联机文档中找不到这些行,但是在<a href="https://github.com/networkx/networkx/blob/master/networkx/classes/graph.py" rel="nofollow">code</a>中有:</p>
<p><strong>子类(高级):</strong></p>
<p>Graph类使用dict的dict数据结构。在</p>
<p>外部dict(node_dict)保存由节点键控的邻接列表。
下一个dict(adjlist)表示邻接列表并保持不变
由邻居键控的边缘数据。内部dict(edge_attr)表示
边数据,并保存由属性名设置关键帧的边属性值。在</p>
<p>这三个dict中的每一个都可以由用户定义的<strong>替换
dict-like对象</strong>。一般来说,dict类的特性应该是
维护,但可以添加额外的功能。替换其中一个
dicts通过更改类(!)来创建一个新的图形类变量
控制着工厂。变量名
分别是node-tu-dict-factory、adjlist-tu-dict-factory和edge-attr-dict-factory。在</p>
<pre><code> node_dict_factory : function, (default: dict)
Factory function to be used to create the outer-most dict
in the data structure that holds adjacency lists keyed by node.
It should require no arguments and return a dict-like object.
adjlist_dict_factory : function, (default: dict)
Factory function to be used to create the adjacency list
dict which holds edge data keyed by neighbor.
It should require no arguments and return a dict-like object
edge_attr_dict_factory : function, (default: dict)
Factory function to be used to create the edge attribute
dict which holds attrbute values keyed by attribute name.
It should require no arguments and return a dict-like object.
</code></pre>
<p>我不知道networkx有任何官方扩展。在</p>