我创建了一个基类:
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)
任何帮助都会很棒。
答案 0 :(得分:33)
您可以在子类中定义__init__
并致电super
以适当地调用父级的__init__
方法:
class SubThing(Thing):
def __init__(self, *args, **kwargs):
super(SubThing, self).__init__(*args, **kwargs)
self.time = datetime.now()
确保从object
获得基类子类,因为super
不适用于旧式类:
class Thing(object):
...
答案 1 :(得分:1)
您应该在__init__
中编写另一个SubThing
方法,然后调用超类的构造函数来初始化其字段。