Я хотел бы хранить экземпляры класса в графе graph-tool , по одному объекту на узел (или «вершину», как их называет 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'
Кроме того, как я могу получить объект класса с определенным заголовком обратно из графа?Один из способов - создать фильтр вершин, используя graph.set_edge_filter(...)
, и применить его - что кажется довольно дорогой операцией, учитывая все, что мне нужно, - вернуть один единственный объект обратно.Я действительно не хочу поддерживать свое собственное отображение названия объекта / индекса вершины как IMO, что является одной из задач графа.
Я что-то упускаю здесь из фундаментального?