[英]graph-tool: how to access properties?
我想将一个类的实例存储在一个图工具图中,每个节点一个对象(或图工具称其为“顶点”)。 我正在尝试使用顶点属性,因为这似乎是实现此目的的方法 。
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那样维护自己的对象标题/顶点索引映射,这是图形的任务之一。
我在这里缺少基本的东西吗?
为了访问属性值,请使用与设置属性值相同的语法,即
for vertex in graph.vertices():
print vprop[vertex].title
会做你想要的。
如果要获得具有给定属性值的顶点,则别无选择,只能在图形中进行搜索。 请记住,属性值不必是唯一的,因此无法以廉价的方式执行反向映射。 此外,每个属性映射都需要一个反向映射,这在内存方面是昂贵的。 但是,您可以轻松地使用dict
对象自行完成此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.