遞歸

2011-06-14 97 views
5

我試圖把一個遞推公式一類的語句遞歸

class SomeNode: 

    def __init__(self, a): 
     leng = len(a) 
     half= leng/2 
     self.firstnode=a[0][0] 
     self.child1=SomeNode([a[i]for k in range(leng)]) 
     self.child2=SomeNode([a[j] for j in range(leng)]) 


    def recursfunc(self): 
     print self.firstnode 
     recursfunc(self.child1) 
     recursfunc(self.child2) 

不過,我不斷收到錯誤消息NameError內:全局名稱「recursfunc」沒有定義

+0

你的構造函數有一個無限遞歸。 'leng = len(a)'的'[a [j] in range(leng)]'可以縮寫爲'a'。 – 2011-06-14 20:18:53

回答

10

您需要使用self.recursfunc()

+0

ohh我看到謝謝=) – LostLin 2011-06-14 20:17:35

+3

或更好'self.child1.recursfunc()'。 – Howard 2011-06-14 20:18:33