我正在寻找一种算法,使用OOP计算河内塔需要采取的步骤。

有两类,棒和盘。我正在寻找使磁盘成为每个棒实例中列表的一部分。

错误:



当我尝试将磁盘实例追加到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.

最佳答案

代替

rod[0].add_to_top(disks[I])

采用
rods[0].add_to_top(disks[I])

(rods而不是rod)。

关于python - 汉诺塔TypeError : 'type' object is not subscriptable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52792219/

10-09 00:15