我有一个国际象棋程序的棋子类,我希望其他棋子继承自:
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
例如,一个国王类必须设置特定于自身但属于基类属性的属性:
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
我的问题是,当我将它们传递给 super 函数时,它们会抛出意外的参数错误,即使我已经在文章中定义了它们。
King 从 Piece 继承的正确方法是什么,同时设置它们共享的不同属性的正确方法是什么?
最佳答案
你忘记了 super 上的括号:
super().__init__(player,False, False, opposition,"K", unicode)
或者:
Piece.__init__(self, player,False, False, opposition,"K", unicode)
关于Python使用super覆盖属性,传递参数时出现意外的参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53171502/