Ханойская башня TypeError: объект 'type' не может быть подписан - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь создать алгоритм, который рассчитывает, сколько шагов нужно сделать для Ханойской башни, используя ООП.

Есть два класса, стержни и диски.Я пытаюсь сделать диски частью списка в каждом экземпляре стержня.

Ошибка:

«Ошибка TypeEr: объект« type »не может быть подписан»

Когда я пытаюсь добавитьэкземпляры диска в список в стержневых экземплярах произошла вышеуказанная ошибка.

Я проверил, что это за ошибка типа, однако я не думаю, что использовал какое-либо из встроенных имен 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.

1 Ответ

0 голосов
/ 13 октября 2018

Вместо

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

используйте

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

(rods вместо rod).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...