Quindi sto creando un clone mario in pygame e ho un personaggio di classe base e due sottoclassi, Mario e Luigi. I metodi che la classe Character definisce richiedono una quantità significativa di attributi da una sottoclasse (circa 20) da definire. Ad esempio, la velocità y iniziale dell'istanza Character deve essere definita. Devo passare tutti questi attributi alla classe Character come parametri o dovrei semplicemente averli definiti nella sottoclasse (per esempio Mario o Luigi)? O che dire di un mix? Il mio pensiero è che dal momento che queste proprietà sono tutte obbligatorie per un'istanza di caratteri, devono essere tutte passate come parametri nel costruttore della classe.
Ecco alcuni pseudo-codice per dimostrare cosa intendo:
class Mario(Character):
def __init__(self):
Character.__init__(self, 1, 2, 3, 4, 5, ... 20)
class Character:
def __init__(self, var1, var2, var3, var4, var5, ... var20):
pass
o
class Mario(Character):
def __init__(self):
var1 = 1
var2 = 2
var3 = 3
var4 = 4
...
var20 = 20
Character.__init__(self)
class Character:
def __init__(self):
pass