Мои собственные методы возвращают None вместо действительного значения - PullRequest
0 голосов
/ 18 ноября 2018

Мои собственные методы класса не работают, когда я проверяю, как работает моя функция '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
...