2012-02-15 3 views
-3

는 다음과 같은 클래스가있다. 보시다시피 super라는 속성이 있습니다. 나는 슈퍼 노드의 색깔을 부르고 싶다. 그것은 잘못 구현했다클래스는 "슈퍼"변수

node.color = node.super.color 

을하지만 :

나는 구현하기 위해 노력했다. 다른 노드의 정보를 얻는 방법을 알고 있습니까?

+4

'self.super'가'0'으로 설정되어 있으므로 적어도 우리 가운데 비 공 감각적 위해 (이것은 정수이고, 정수는 색이없는 : 갈

한 가지 방법이다). 나는 뭔가를 놓치고있는 것 같습니다 ... –

+0

@SvenMarnach는 꽤 맞습니다. 또한 "잘못된 구현"이라고 말하기보다는 실제 오류 메시지를 붙여 넣어야합니다. –

+0

당신이 말하는 슈퍼 노드는 무엇입니까? N 클래스는 self.super 속성에 다른 노드 인스턴스에 대한 참조를 저장할 수 있다고 가정합니까? – jdi

답변

4

부모 노드 또는 적어도 색상을 클래스 초기화 함수 에 명시 적으로 전달해야합니다. 단순 노드 클래스가 다른 노드 객체와 어떻게 연결되는지 "추측"할 수있는 방법은 없습니다.

class N(object): 
    def __init__(self, node_id, parent_node): 
     self.id = node_ide 
     self.parent = parent_node 
     self.color = 0 
    # and you canget parentnode color with self.node.color 
+1

이것은 나에게 잘 보인다. 그것은 OP가 다른 노드 인스턴스 – jdi

+2

'self.parent.color'에 대한 참조를 저장하고 싶었던가에 대한 질문에서 누락 된 부분이 있습니다. –

+0

@DanielRoseman - 또한 node_ide의 오타입니다 ... Shirley라고하지 마십시오. – jdi