图形边缘可以是对象吗?

时间:2018-04-10 07:15:40

标签: python oop graph networkx

我是python的初学者,如果我的问题很简单,请提前道歉! 我想创建一个图表并使用NetworkX来实现此目的。节点是对象。

但边缘也有很多动态属性。边缘可以是物体吗?如果是,怎么样?

2 个答案:

答案 0 :(得分:1)

根据networkX documentation,这是向边添加属性的方法:

NetworkX Doc

在命名“权重”属性时要特别小心,因为它将用作加权图表中的权重,如上所述。

关于你的问题“边缘可以是对象吗?” - 你可以创建一个对象(类),其中包含稍后将在边缘使用的信息。

例如:

class Edge:
      def __init__(self, weight, someAttribute):
          self.weight = weights
          self.attribute = someAttribute
      def otherFunction(self):
          # Do/Store something
          return 0; 

您可以创建此类的实例,以便稍后使用它们使用netrworkX提供的语法创建边缘。

与节点相同,实际上你可以创建几乎任何东西的对象,这是OOP的重点。

答案 1 :(得分:-1)

也是初学者,但我一直在查看

提供的文档

https://networkx.github.io/documentation/networkx-1.10/tutorial/tutorial.html

它说: 使用add_edge(),add_edges_from(),下标表示法或G.edge添加边缘属性。

>>> G.add_edge(1, 2, weight=4.7 )
>>> G.add_edges_from([(3,4),(4,5)], color='red')
>>> G.add_edges_from([(1,2,{'color':'blue'}), (2,3,{'weight':8})])
>>> G[1][2]['weight'] = 4.7
>>> G.edge[1][2]['weight'] = 4

所以看起来它有一个与边相关联的键值对的字典,希望能满足你的目的。