Multi Inheritance - вызов методов с тем же именем удаляет другие значения - PullRequest
0 голосов
/ 18 апреля 2020

Я создаю шахматный проект в python, я определил ход для слона и ладьи, и потому что королева использует те же ходы, что и я, я хотел, чтобы она унаследовала от ладьи и класса слона и использовала их ход функции.

class Queen(Rook,Bishop):
def __init__(self,color,startX,startY):
    super().__init__(color,startX,startY)
    if self.color == 'w':
        self.img = pg.image.load('Queen_White.png').convert_alpha()
    else:
        self.img = pg.image.load('Queen_Black.png').convert_alpha()

def Move(self,chessRects,pieces):
    self.move_list.clear()
    bishop_kind_move = Bishop.Move(self,chessRects,pieces)
    print(len(bishop_kind_move))
    rook_kind_move = Rook.Move(self,chessRects,pieces)
    print(len(bishop_kind_move))
    if len(bishop_kind_move) > 0:
        print("HERE")
        self.move_list = bishop_kind_move
        if len(rook_kind_move) > 0:
           self.move_list.append(rook_kind_move)
    else:       
        if len(rook_kind_move) > 0:
           self.move_list = rook_kind_move      
    return self.move_list

Как вы можете видеть, я сделал некоторую проверку и написал две строки для печати, вот результаты: 3, 0 Я обнаружил, что после того, как я использую метод перемещения ладьи, он удаляет мои значения или сбрасывает их :(. Я не знаю, в чем причина, но это бьет мою голову, это не имеет смысла для меня: (

...