[英]How to extend Python class init
我创建了一个基类:
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()
确保从object
获得基类子类,因为super
不适用于旧式类:
class Thing(object):
...
您应该在SubThing
编写另一个__init__
方法,然后调用超类的构造函数来初始化其字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.