クラスのインスタンスをgraph-toolグラフに格納したいと思います。ノードごとに1つのオブジェクト(またはグラフツールから呼び出される '頂点')を格納します。私はway to do thisと思われる頂点プロパティを使用しようとしています。graph-tool:プロパティへのアクセス方法?
class MyClass(object):
def __init__(self, title):
self.title = title
graph = Graph()
my_obj = MyClass('some title')
vertex = graph.add_vertex()
vprop = graph.new_vertex_property('object')
vprop[vertex] = my_obj
ここで私のクラスオブジェクトを読み返したいと思います。すべてのノード/頂点を反復処理し、そのタイトルを印刷:
for vertex in self.graph.vertices():
# TODO: how to access titles ? this just prints
# "<Vertex object with index '0' at 0xb1e4bac>"
print repr(vertex) + '\n'
また、どのように私は戻って、グラフから特定のタイトルを持つクラスオブジェクトを得るのですか? 1つの方法は、graph.set_edge_filter(...)
を使用して頂点フィルタを作成し、それを適用することです - 私が望むすべてを考えれば、かなり高価な操作のように見えますが、1つのオブジェクトを元に戻すことです。私は本当に自分のオブジェクトタイトル/頂点インデックスマッピングをIMOとして維持したくないということです。それはグラフのタスクの1つです。
ここでは何か基本的なものがありませんか?