Объект в списке не повторяется - PullRequest
0 голосов
/ 01 октября 2018

Я создаю шахматную игру на Python.Ниже у меня есть способ отображения доски.Проблема в том, что он отображает только первый square.piece.piece_type.Я проверил содержимое списка и там 64 (как и должно быть).Как я могу вернуть все переменные объекта?

    def board_display(self):
    counter = 0
    while counter <= len(self.squares):
        for square in self.squares:
            return square.piece.piece_type
    counter += 1

Я пытался использовать счетчик в качестве индекса, но затем он возвращает TypeError: 'square' object is not iterable

РЕДАКТИРОВАТЬ (решено):

Возврат(по-видимому, это конец всей функции, а не только цикл) было главной проблемой.Я поместил отдельные части списка в новый список и возвратил этот новый список.

    def board_display(self):
    output = []

    for square in self.squares:
        output.append(square.piece.piece_type)
    return output

1 Ответ

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

Ваша проблема, описанная в вопросе, вызвана тем, что как только вы достигнете return, вы покидаете функцию board_display.После этого он не выполняется, и поэтому вы возвращаете только первое square.piece.piece_type.counter никогда становится 1 или 2 и т. Д.

Таким образом, вы можете захотеть вернуть список квадратов, а не каждый квадрат.

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