Как переместить функцию из класса в другой класс, не передавая вызывающий объект
У меня есть следующая реализация для структуры данных (Trie), и она работает, как ожидалось. У меня основной класс Node
и класс оболочки Trie
, Я хочу переместить функцию _insert()
от Node
класс для Trie
класс, чтобы сохранить Node
настолько просто, насколько это возможно. Но я сталкиваюсь со многими проблемами, такими как class Trie has no object nodes and no object word.
Есть ли способ сделать это, не передавая вызывающий объект из основного в? Ожидания:
trie.insert("Hi")
Все реализации 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 ответ
Класс Trie (как реализовано) не имеет ни узлов объекта, ни слова объекта.
Класс Trie имеет только объекты root.nodes и root.word.