如何覆盖基础构造函数参数

时间:2015-03-06 18:08:52

标签: python oop python-3.x

如果我创建一个覆盖另一个类的python类,是否会从基类调用__init__?如果我想为它指定参数怎么办?

基类:

class bar(object):
    def __init__(self, somearg = False):
        # ...

新课

class foo(bar):
    def __init__(self)
       # ???

我想要什么?

obj = foo() # somearg = True

1 个答案:

答案 0 :(得分:2)

不,不调用基类__init__方法,因为派生类提供了该方法的新版本。

您将通过__init__代理显式调用父super()方法,并传入参数以设置其他默认值:

class foo(bar):
    def __init__(self)
        super().__init__(somearg=True)