【问题标题】:AttributeError: 'NoneType' object has no attribute 'value'AttributeError:“NoneType”对象没有属性“值”
【发布时间】:2020-04-02 15:15:04
【问题描述】:

我目前正在处理有关二叉搜索树的问题。我的问题是我收到错误“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

我想这与我的 init() 函数中 self.root 设置为 None 的事实有关。我该如何解决这个问题?

【问题讨论】:

    标签: binary-search-tree


    【解决方案1】:

    self.root 是None 所以当你检查self.root.value 时,根没有这样的元素。

    不是初始化self.root=None,而是初始化self.root=Node(None)

    同样在插入时,如果你打算插入到root,那么检查root.value是否是None,如果是,则插入其余的逻辑

    【讨论】:

    • 好的,我明白了!但是,我的问题似乎仍然存在,因为下一行 elif self.root.value > data: if self.root.left_child: return self.root.left_child._insert(data) 返回此错误消息 TypeError: '>' not supported 'NoneType' 和 'str' 的实例之间
    • 太好了,我认为解决了错误信息!无论如何,现在我收到了 None = 的 AssertionError! X,因为我尝试计算插入的值 X。但我会再次查看代码,看看是否可以解决它。谢谢
    • 好吧,如果我有任何帮助,请点赞或接受我的回答,祝学习愉快!!!
    猜你喜欢
    • 2019-01-01
    • 2021-12-26
    • 2019-07-23
    • 2018-05-13
    • 2020-09-07
    • 2017-05-03
    • 2023-03-16
    • 2018-07-14
    • 2013-06-16
    相关资源
    最近更新 更多