2012-02-15 56 views
-3

有一類如下:類「超級」可變

class N: 
    def __init__(self, node_id): 
     self.id = node_id  # id (as an integer for example) 
     self.super = 0 
     self.color = 0 

它是關於創建節點。正如你所看到的,有一個屬性,超級。我想調用超級節點的顏色。

我試圖執行:

node.color = node.super.color 

,但是,這是錯誤的執行。你有什麼想法如何獲得其他節點的信息?

+4

'self.super'設置爲'0',所以它是一個整數,而整數沒有的顏色(至少對我們之間的非聯覺)。我似乎失去了一些東西... – 2012-02-15 17:48:07

+0

@SvenMarnach是非常正確的。另外,不要說「這是錯誤的實現」,你應該粘貼實際的錯誤信息。 – 2012-02-15 17:49:35

+0

你甚至指的是什麼超級節點? N類是否應該能夠在其self.super屬性中存儲對另一個節點實例的引用? – jdi 2012-02-15 17:53:16

回答

4

您需要明確地將父節點或至少它的顏色傳遞給類初始化函數 - simplist節點類無法「猜測」它如何與其他節點對象連接。

一條路可走的是:

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 2012-02-15 17:54:50

+2

'self.parent.color'的引用,當然? – 2012-02-15 17:56:08

+0

@DanielRoseman - 也是node_ide上的錯字...並且不叫他雪莉 – jdi 2012-02-15 17:59:00