如何在不传递调用对象的情况下将函数从一个类移动到另一个类

时间:2018-12-20 16:26:09

标签: python python-3.x data-structures trie

我对数据结构(Trie)具有以下实现,并且按预期方式工作。我有主类Node和包装器类Trie。我想将功能_insert()Node类移到Trie类,以使Node尽可能简单。但是我遇到了许多问题,例如class Trie has no object nodes and no object word.,有没有一种方法可以在不从主对象传递调用对象的情况下进行呢? 期望:

trie.insert("Hi")

Trie类中insert()的所有实现

class Node:
    def __init__(self):
        self.word = None
        self.nodes = {}

    def _insert(self, word, string_pos=0):
        current_lettter = word[string_pos]
        if current_lettter not in self.nodes:
            self.nodes[current_lettter] = Node()
        if(string_pos + 1 == len(word)):
            self.nodes[current_lettter].word = word
        else:
            self.nodes[current_lettter]._insert(word, string_pos + 1)

        return True


class Trie:

    def __init__(self):
        self.root = Node()

    def insert(self, word):
        self.root._insert(word)

trie = Trie()
trie.insert("Hi") 

1 个答案:

答案 0 :(得分:0)

Trie类(已实现)没有对象节点,也没有对象词。

Trie类只有root.nodes和root.word对象。