Type()在Python 3中未检测到我的类(树)

Type()在Python 3中未检测到我的类(树),python,class,types,Python,Class,Types,遇到了一些我不能完全理解的事情。 请看下面的代码。 这是将二叉树转换为列表并将其记录为文件的程序的一部分。 我遇到的问题是,它无法检测到树对象,并跳转到if语句的else:part。 我甚至在进入if语句之前在for循环中输入了一个print类型(t),以检查它是否是树对象,并显示: <class '__main__.Tree'> 但是Python仍然跳过了if子句(我还尝试了type(t)is Tree和type(t)=Tree,结果相同)。一定有什么我不明白的,所以如果

遇到了一些我不能完全理解的事情。 请看下面的代码。 这是将二叉树转换为列表并将其记录为文件的程序的一部分。 我遇到的问题是,它无法检测到树对象,并跳转到if语句的else:part。 我甚至在进入if语句之前在for循环中输入了一个print类型(t),以检查它是否是树对象,并显示:

 <class '__main__.Tree'> 

但是Python仍然跳过了if子句(我还尝试了type(t)is Tree和type(t)=Tree,结果相同)。一定有什么我不明白的,所以如果你能看到,请让我知道

程序跳过该死的if子句并进入else之后的第一步中的变量,原因我无法理解:):

copy={list}:[]
t={Tree}它能叫吗
cargo={str}‘它会叫吗’
而len(机器人水平)>0:
复制=机器人级别[:]
对于副本中的t:
印刷品(t型)
如果存在(t,树):
货物清单。附加(t.cargo)
bot_level.append(t.left)
bot_level.append(t.right)
del bot_级别[0]
其他:
货物清单。附加(无)
del bot_级别[0]

如果未执行
print(type(t))
,则可能
copy
/
bot\u level
为空?很抱歉,由于我没有缩进打印,因此打印未显示。您现在应该看到它。在此处使用它之前,您是否只是在不经意间将
树重新绑定(注意重新定义
Tree
就是一个例子)?尝试
print(type(t),Tree)
,看看两者是否相同,还有
print(type(t)==Tree)
。我将在晚上检查,但考虑到它打印type(t)在if子句前面的as:class main.Tree中,我认为它与重新绑定无关。。。
copy = {list} <class 'list'>: [<__main__.Tree object at 0x0000001EAAE549B0>]

t = {Tree} can it bark

cargo = {str} 'can it bark'




while len(bot_level) > 0:

        copy = bot_level[:]
        for t in copy:
            print(type(t))
            if isinstance(t, Tree):
                cargo_list.append(t.cargo)
                bot_level.append(t.left)
                bot_level.append(t.right)
                del bot_level[0]
            else:
                cargo_list.append(None)
                del bot_level[0]