小编Ale*_*eyr的帖子

Python没有定义递归函数?

我在Python 3.5.0中创建了一个二叉树,我正在为它创建插入函数.但是当我tree_insert在内部调用时,我遇到了一些问题,它给了我这个错误:

在tree_insert中的文件"D:/MadeUpPath/BinaryTree.py",第10行

tree_insert(data,self.left)

NameError:未定义名称"tree_insert"

class BinaryTree():
    def __init__(self, data):
        self.left = None
        self.right = None
        self.data = data

    def tree_insert(self, data):
        if (data < self.data):
            if (self.left != None):
                tree_insert(data, self.left)
            else:
                self.left = BinaryTree(data)
        else:
            if (self.right != None):
                tree_insert(data, self.right)
            else:
                self.right = BinaryTree(data)
Run Code Online (Sandbox Code Playgroud)

经过进一步的测试,我发现递归函数根本不起作用.我尝试了以下代码,但确实给了我同样的错误:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)
Run Code Online (Sandbox Code Playgroud)

在阶乘中归档"D:/MadeUpPath/BinaryTree.py",第23行

返回n*阶乘(n - 1)

NameError:未定义名称"factorial"

如果有人能指出我正确的方向,将非常感谢:)

pycharm python-3.x

3
推荐指数
1
解决办法
4745
查看次数

标签 统计

pycharm ×1

python-3.x ×1