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