递归函数:python递归

递归函数:python递归,python,function,recursion,Python,Function,Recursion,我有这个功能: def depth(self): if self.root == None: return 0 left = depth(self.left) right = depth(self.right) if left>right: return left+1 else: return right+1 但当我运行它时,会弹出以下错

我有这个功能:

def depth(self):
        if self.root == None:
            return 0
        left = depth(self.left)
        right = depth(self.right)
        if left>right:
            return left+1
        else:
            return right+1
但当我运行它时,会弹出以下错误:

 File "/Users/suryakannan/Documents/Python Programs/binaryTree.py", line 60, in depth
    left = depth(self.left)
NameError: name 'depth' is not defined

那么,我应该怎么做来修复这个函数呢?

因为
深度
是一个实例方法,所以您需要使用
self
引用

def depth(self):
    if self.root == None:
        return 0
    left = self.depth(self.left)
    right = self.depth(self.right)
    if left>right:
        return left+1
    else:
        return right+1

由于
depth
是一种实例方法,因此需要使用
self
引用

def depth(self):
    if self.root == None:
        return 0
    left = self.depth(self.left)
    right = self.depth(self.right)
    if left>right:
        return left+1
    else:
        return right+1

试一试
self.depth(self.lenght)
,既然它在一个班级里,就应该是
self.depth(self.lenght)
,既然它在一个班级里,就应该是
self.depth(self.lenght)
,谢谢你对我的帮助。我真的很感激每一个为我做出贡献的人,非常感谢你对我的帮助。我真的很感谢每一位为我做出贡献的人