TypeError:"' TrieNode'对象不可调用" - 我的代码出了什么问题?

时间:2017-07-22 20:42:56

标签: python python-2.7 tree trie

我写了这段代码来测试前缀树,但由于某种原因我得到了错误" TrieNode"对象不可调用。有人可以帮我解决这个错误吗?

为什么TrieNode()类不可调用?

# 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")

1 个答案:

答案 0 :(得分:1)

应该阅读

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

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