繁体   English   中英

如何扩展Python类init

[英]How to extend Python class init

我创建了一个基类:

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

我想扩展该类并添加到init方法,以便该SubThing同时具有nametime属性。 我该怎么做?

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM