AttributeError: у объекта 'NoneType' нет атрибута 'значение' - PullRequest
0 голосов
/ 02 апреля 2020

В настоящее время я работаю над проблемой, связанной с деревьями бинарного поиска. Моя проблема в том, что я получаю ошибку «AttributeError: объект NoneType» не имеет атрибута «значение» », и я не вижу, что я могу с этим поделать. Этот код находится в моем классе BST.

 def _insert(self, data):
    if self.root.value == data:
        return False

У меня есть класс Node и класс BinarySearchTree.

class _Node:
    def __init__(self, value):
        self.right_child = None
        self.left_child = None
        self.value = value

class BST:
   def __init__(self):
       self.root = None

Я думаю, это как-то связано с тем, что self. * Для 1010 * установлено значение Нет в моей функции init (). Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 02 апреля 2020

self.root равно None, поэтому, когда вы проверяете self.root.value, root не имеет такого элемента.

Вместо инициализации self.root=None инициализируйте self.root=Node(None)

Также при вставке, если вы планируете вставить в root, проверьте, является ли root.value None, если да, вставьте остальные логи c

...