递归

2011-06-14 54 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