2

pydot 有大量的绑定方法来获取和设置点图中的每一个小东西,读取和写入,你可以命名它,但我似乎找不到一个简单的成员资格测试。

>>> d = pydot.Dot()
>>> n = pydot.Node('foobar')
>>> d.add_node(n)

>>> n in d.get_nodes()
False

只是许多不起作用的事情之一。似乎节点一旦添加到图形中,就会获得新的身份

>>> d.get_nodes()[0]
<pydot.Node object at 0x171d6b0>
>>> n
<pydot.Node object at 0x1534650>

任何人都可以建议一种方法来创建一个节点并在添加之前测试它是否在图表中,以便您可以执行以下操作:

d = pydot.Dot()
n = pydot.Node('foobar')
if n not in d:
    d.add_node(n)
4

1 回答 1

2

查看源代码http://code.google.com/p/pydot/source/browse/trunk/pydot.py,似乎节点名称是唯一值,用作定位图中节点的键节点字典(有趣的是,它不会为现有节点返回错误,而是简单地将新节点的属性添加到现有节点的属性中)。

因此,除非您想向文件中执行以下操作__contains__()的类之一添加实现,否则您可以在代码中执行以下操作:pydot.py

if n.get_name() not in d.obj_dict['nodes'].keys():
    d.add_node(n)
于 2011-06-07T17:26:40.460 回答