2012-02-15 12 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 

これは、ノードの作成についてです。ご覧のように、superという属性があります。私はスーパーノードの色を呼んでいます。

私が実装してみました:それは間違って実装した、

node.color = node.super.color 

けど。他のノードの情報を取得する方法はありますか?

+4

'self.super'が '0'に設定されているので、少なくとも私たちの間で非共感覚のために(それは整数だ、と整数は色を持っていない。どこへ行く

一つの方法です)。私は何かが欠けているようです... –

+0

@SvenMarnachはかなり正しいです。また、「実装が間違っていた」というよりも、実際のエラーメッセージを貼り付ける必要があります。 –

+0

あなたはどんなスーパーノードを参照していますか?クラスNは、self.super属性に別のノードインスタンスへの参照を格納できるとしていますか? – jdi

答えて

4

親ノードまたは少なくともその色をクラスinit関数 に明示的に渡す必要があります。シンプルなノードクラスが他のノードオブジェクトとどのように接続されているかを推測する方法はありません。

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の誤字...また、シャーリーとも呼ばない – jdi

関連する問題