2011-11-15 2 views
0

나는 내가networkx은 '슈퍼'개체가 어떤 속성 '노드'

[1, 'r'] 
... 
AttributeError: 'super' object has no attribute 'node' 

내가 .nodes()을 사용할 수 있습니다 얻을 실행하면 networkx.DiGraph

import networkx as nx 
class branch(nx.DiGraph): 
    def __init__(self,g,raiz): 
     self.b=super(branch,self) 
     self.b.__init__(g) 
     self.r = raiz 
    def strong(self): 
     print self.b.nodes(),self.b.node[self.r] 
     if self.b.node[self.r]['w']>0:                     
      return 1 
     else: 
      return 0 

에서 클래스를 확장하려고하지만 .node[]이 없습니다 , 왜 ?

답변

0

간단히 말해서 node[]이 존재하지 않기 때문입니다. 대신 nodes()[]을 사용하여 색인을 생성 할 수있는 배열을 반환합니다. 이 코드는 self.b.nodes()[self.r]과 비슷할 수 있습니다.

+0

이것은 사실이지만 OOP에 대한 OP의 오해를 수정하지는 않습니다. 여기서'super'를 사용하는 이유는 없습니다 :'self.nodes()'도 똑같이 작동합니다. –

+0

@DanielRoseman, self.nodes()에 대해 감사드립니다. 더 많이 이해합니다. – JuanPablo

+0

@DanielRoseman, 그리고'self.node [self.r]'로 문제를 풀었습니다. 대답으로 답글을 달 수 있습니까? – JuanPablo

관련 문제