河内塔TypeError:“type”对象不是subscriptab

2024-05-15 21:02:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个算法,计算多少步骤需要采取的河内塔使用面向对象的。你知道吗

有两类,棒和磁盘。我想让磁盘成为每个rod实例列表的一部分。你知道吗

错误:

"TypeError: 'type' object is not subscriptable"

当我试图将磁盘实例附加到rod实例列表中时,出现了上述错误。你知道吗

我已经检查了什么类型错误,但是我认为我没有使用任何Python的内置类型名。你知道吗

class rod:
    def __init__(self,disks=[]):
        self.diskslist=disks

    def remove_top(self):
        return self.disks.pop(-1)

    def add_to_top(self,disk):
        self.diskslist.extend(disk)

class disk:
    def __init__(self,size):
        self.size=size

disks=[]
for i in range(8):
    disks.append(disk(i))
#Generating 8 disks of increasing size

rods=[]
for i in range(3):
    rods.append(rod())
#Generating 3 rods

for i in range(len(disks)):
    rod[0].add_to_top(disks[I])
#Trying to add all the disks to the leftmost rod. This is where I get my type error.

Tags: to实例inselfaddforsizetop