Python 3.x Python没有定义递归函数?

Python 3.x Python没有定义递归函数?,python-3.x,pycharm,Python 3.x,Pycharm,我在Python3.5.0中创建了一个二叉树,并为它创建了insert函数。但是当我在内部调用tree\u insert时,我遇到了一点问题,它给了我以下错误: 文件“D:/MadeUpPath/BinaryTree.py”,第10行,插入树 树_插入(数据,自左) 名称错误:未定义名称“树插入” 文件“D:/MadeUpPath/BinaryTree.py”,第23行,阶乘形式 返回n*阶乘(n-1) NameError:未定义名称“阶乘” 如果有人能给我指出正确的方向,我将不胜感激:)tre

我在Python3.5.0中创建了一个二叉树,并为它创建了insert函数。但是当我在内部调用
tree\u insert
时,我遇到了一点问题,它给了我以下错误:

文件“D:/MadeUpPath/BinaryTree.py”,第10行,插入树

树_插入(数据,自左)

名称错误:未定义名称“树插入”

文件“D:/MadeUpPath/BinaryTree.py”,第23行,阶乘形式

返回n*阶乘(n-1)

NameError:未定义名称“阶乘”

如果有人能给我指出正确的方向,我将不胜感激:)

tree\u insert()
是一个,请通过
self.tree\u insert()调用它:

class BinaryTree():
定义初始化(自身,数据):
self.left=无
self.right=无
self.data=数据
def树_插入(自身,数据):
如果(数据<自身数据):
如果(self.left!=无):
self.tree_insert(数据,self.left)
其他:
self.left=BinaryTree(数据)
其他:
如果(self.right!=无):
self.tree_insert(数据,self.right)
其他:
self.right=BinaryTree(数据)
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)
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)
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):
                self.tree_insert(data, self.left)
            else:
                self.left = BinaryTree(data)
        else:
            if (self.right != None):
                self.tree_insert(data, self.right)
            else:
                self.right = BinaryTree(data)