Ho creato una classe di base:come estendere Python classe init
class Thing():
def __init__(self, name):
self.name = name
voglio estendere la classe e aggiungere alla metodo di init in modo che il che SubThing
ha sia una name
e una proprietà time
. Come lo faccio?
class SubThing(Thing):
# something here to extend the init and add a "time" property
def __repr__(self):
return '<%s %s>' % (self.name, self.time)
Qualsiasi aiuto sarebbe fantastico.
Inoltre, invece di fare riferimento a 'Sottothing' in' super', puoi fare 'super (self .__ class__, self) .__ init __ (* args, ** kwargs)'. Questo funziona anche con classi create dinamicamente usando 'type()'. – miki725
Ottengo questo errore con una di queste soluzioni: 'TypeError: deve essere type, not classobj' - l'errore viene attivato dalla mia super linea. – TheChymera
@TheChymera guarda cosa ha scritto Jesse: "Assicurati di avere la sottoclasse della tua classe base dall'oggetto, dato che super non funzionerà con le classi vecchio stile" – Acsisr