Как расширить класс класса Python

Я создал базовый класс:

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

Я хочу расширить класс и добавить к методу init, так что SubThing имеет как name и свойство time . Как мне это сделать?

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

Любая помощь была бы потрясающей.

Вы можете просто определить __init__ в подклассе и вызвать super чтобы вызвать методы __init__ родителей соответствующим образом:

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

Убедитесь, что у вас есть класс подкласса базового класса, поскольку super не будет работать со старыми классами:

 class Thing(object): ... 

Вы должны написать еще один метод __init__ в SubThing а затем вызвать конструктор суперкласса для инициализации его полей.

Это Q & A должно предоставить вам еще несколько примеров.