python中的名称错误

python中的名称错误,python,Python,我在python程序中遇到以下名称错误,尽管我在使用函数之前声明了它 这是我的节目: def __init__(self): self.root = None def insert_at(leaf, value): #some code here.... def insert(self,value): #some code here.... insert_at(self.root, value) def main(): #some code h

我在python程序中遇到以下名称错误,尽管我在使用函数之前声明了它

这是我的节目:

def __init__(self):
    self.root = None


def insert_at(leaf, value):
    #some code here....


def insert(self,value):
    #some code here....
    insert_at(self.root, value)


def main():
    #some code here
    insert(10)
    #some code here
这是我的错误:

File "programs/binary_tree.py", line 38, in insert
insert_at(self.root, value)
NameError: name 'insert_at' is not defined
在问这个问题之前,我确实问了以下问题,但不明白为什么我会出错


看起来这些是类中的方法。您需要进行以下更改:

def insert_at(self, leaf, value): # add self


谢谢。这很有帮助。假设我在insert_at()中反复调用insert_at()。。我还应该使用self吗?i、 e,在insert_at()中,我是否应该自己再次调用它。insert_at()或只是insert_at()。我两个都试过了,但都起作用了……我不明白其中的区别。是的,还是用
self
@vaultah:谢谢……没有回答这个问题。。
self.insert_at(self.root, value) # add self