Stworzyłem klasę bazową:Jak przedłużyć Python class Init
class Thing():
def __init__(self, name):
self.name = name
Chcę rozszerzyć klasę i dodać do Init metody tak, że SubThing
ma zarówno name
i właściwość time
. Jak mam to zrobić?
class SubThing(Thing):
# something here to extend the init and add a "time" property
def __repr__(self):
return '<%s %s>' % (self.name, self.time)
Każda pomoc będzie niesamowita.
Zamiast przywoływania 'SubThing' w' super', możesz zrobić 'super (self .__ class__, self) .__ init __ (* args, ** kwargs)'. Działa to również z dynamicznie tworzonymi klasami przy użyciu 'type()'. – miki725
Otrzymuję ten błąd z jednym z tych rozwiązań: 'TypeError: must be type, not classobj' - błąd jest wywoływany przez moją superlinię. – TheChymera
@ TheChymera spójrz na to, co Jesse napisał: "Upewnij się jednak, że masz podklasę klasy podstawowej od obiektu, ponieważ super nie działa z klasami starego stylu" – Acsisr