Мои собственные методы класса не работают, когда я проверяю, как работает моя функция 'linker'.Эти методы возвращают значение None.
Когда я запускаю эти методы в интерактивном режиме, они работают, и каждый возвращает новый узел, связанный с корнем.Почему эти методы не работают, когда я запускаю функцию 'linker'?
Узел определяется как
class node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def insertL(self, data):
self.left = node(data)
return self.left
def insertR(self, data):
self.right = node(data)
return self.right
def linker(root, lst):
import random
seq = ['left', 'right', 'nither', 'either']
res = random.choices(seq,(0.1,0.3,0.1,0.6), k=1)
if lst:
l=random.choice(lst)
if res == 'left':
root=root.insertL(l)
lst.remove(l)
return root, lst
elif res == 'right':
root=root.insertR(l)
lst.remove(l)
return root,lst
elif res == 'nither':
return root,lst
elif res == 'either':
nodes = [root.insertL(l)]
lst.remove(l)
l2=random.choice(lst)
nodes+=[root.insertR(l2)]
lst.remove(l2)
return nodes, lst
else:
return root, lst