Cómo extender la clase de Python.

He creado una clase base:

class Thing(): def __init__(self, name): self.name = name 

Quiero extender la clase y agregar al método init para que SubThing tenga un name y una propiedad de time . ¿Cómo lo hago?

 class SubThing(Thing): # something here to extend the init and add a "time" property def __repr__(self): return '' % (self.name, self.time) 

Cualquier ayuda sería increíble.

Simplemente puede definir __init__ en la subclase y llamar a super para llamar a los métodos __init__ los padres de __init__ apropiada:

 class SubThing(Thing): def __init__(self, *args, **kwargs): super(SubThing, self).__init__(*args, **kwargs) self.time = datetime.now() 

Sin embargo, asegúrate de tener tu subclase de clase base del object , ya que super no funcionará con clases de estilo antiguo:

 class Thing(object): ... 

Debe escribir otro método __init__ en SubThing y luego llamar al constructor de la superclase para inicializar sus campos.

Estas preguntas y respuestas deben proporcionarle algunos ejemplos más.