Python, использующий super для переопределения атрибутов, непредвиденная ошибка аргумента при передаче аргумента - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть класс фигур для шахматной программы, от которого я хочу наследовать другие фигурки:

class Piece:
    def __init__(self, player, diag, straight, opponent, marker, unicode):

        self.player = player
        self.diag = diag
        self.straight = straight
        self.opponent = opponent
        self.marker = marker
        self.unicode = unicode

и, например, класс king, который должен устанавливать атрибуты, которые являются специфическими для него, но являются частью атрибутов базового класса:

from Piece import Piece

class King(Piece):

    def __init__(self, player, opposition, unicode):
        super.__init__(player,False, False, opposition,"K", unicode)
        self.has_moved = False
        self.casle_king = True
        self.castle_queen = True

Моя проблема в том, что когда я передаю их в суперфункцию, они выдают неожиданную ошибку аргумента, даже если я определил их в куске.

Как Король может наследовать от Куска, но также устанавливать особые атрибуты, которые у них разные?

1 Ответ

0 голосов
/ 06 ноября 2018

Вы забыли скобки на супер:

super().__init__(player,False, False, opposition,"K", unicode)

Или:

Piece.__init__(self, player,False, False, opposition,"K", unicode)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...