Python TypeError:“输入错误”';三节点';对象不可调用";-我的代码有什么问题?

Python TypeError:“输入错误”';三节点';对象不可调用";-我的代码有什么问题?,python,python-2.7,tree,trie,Python,Python 2.7,Tree,Trie,我写这段代码是为了测试前缀树,但由于某种原因,我得到了错误“Trinode”对象是不可调用的。有人能帮我解决这个错误吗 为什么Trinode()类不可调用 # Prefix Tree or Trie Data Structure class TrieNode(object): def __init__(self): self.children = {} self.endOfWord = False class Trie(object): def

我写这段代码是为了测试前缀树,但由于某种原因,我得到了错误“Trinode”对象是不可调用的。有人能帮我解决这个错误吗

为什么Trinode()类不可调用

# Prefix Tree or Trie Data Structure
class TrieNode(object):
    def __init__(self):
        self.children = {}
        self.endOfWord = False

class Trie(object):
    def __init__(self):
        self.root = TrieNode()

def insert(self,word):
    node = self.root()
    for w in word:
        if w not in node.children:
            node.children[w] = TrieNode()
        node = node.children[w]
    node.endOfWord = True

def search(self,word):
    node = self.root
    for w in word:
        if w not in node.children:
            return False
        node = node.children[w]

    return node.endWord

def startsWith(self,prefix):
    node = self.root
    for w in prefix:
        if w not in node.children:
            return False
        node = node.children[w]
    return True

if __name__ == "__main__":
    trie = Trie()
    trie.insert("apple")
    trie.insert("apples")
    trie.insert("bat")
    trie.insert("bate")    
    print trie.search("apple")
应该是

def insert(self,word):
    node = self.root

在那里观看
root()
->
root
。您当前正在调用实例属性,而实际上您只想获取对它的引用。

发布完整错误,包括堆栈跟踪
node=self。root()是您的错误
self.root
已经是一个三节点实例,您正在尝试调用它。我从这里猜测:
node=self.root()
,但是为什么您认为三节点实例是可调用的呢?在发布python代码之前检查缩进…谢谢@user272298,修复了它。这是我的一个输入错误,我并没有打算分配root()