首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么有时PYTHON 中的对象可以被打印但不能被计算?

为什么有时PYTHON 中的对象可以被打印但不能被计算?

提问于 2022-12-25 12:16:16
回答 0关注 0查看 35

我是一名在校大学生,我想写一个函数来求一个红黑树的近似高度,由于红黑树的最长子树不大于最小子树的一半所以我仿照Treeminimum函数写了如下函数(root 在其他函数中用T.root调用):

代码语言:js
复制
def ProxHigh(T, root):
    h = 0
    x = root
    
    if x != None:        
        while x.left != T.nil or x.right != 0:
            if x.left == T.nil:
                x = x.right
            else:
                x = x.left
            h = h + 1
        return h 
    else: 
        return 0

写if x != None 是因为之前其显示了如下错误:

代码语言:js
复制
File "红黑树.py", line 224, in ProxHigh
    while x.left != T.nil or x.right != 0:
AttributeError: 'NoneType' object has no attribute 'left'

查阅资料发现其意味着x的对象类型为‘NoneType’,这意味着其被赋予了‘None’值。但加上了'if x != None'之后其还是会显示同样的报错,把光标移到x上方和print(x)都会显示x的类型为TreeNode但把光标移到x.left上方会显示其类型为‘NoneType’并且可以打印'x.key'和‘x.left.key’的值,但是还是会报这样的错误。请问有人知道这是为什么吗?谢谢

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档