我正在寻找一种算法,使用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/