继承 - 父类中的关键字和常规参数

时间:2015-07-13 23:11:53

标签: python

如果我这样做,调用ChildFoo实例的正确方法是什么?我问这个是因为我知道我应该在关键字参数之前放置参数,但不知道在这种情况下该做什么......

./bin/spark
SyntaxError : invalid syntax.

2 个答案:

答案 0 :(得分:0)

这样的东西?

class ParentFoo(object):
    def __init__(self,a,b,c=None):
        print(c)

class ChildFoo(ParentFoo):
    def __init__(self,d,e,f=None):
        super(ChildFoo,self).__init__(d,e,c="fing")

c = ChildFoo("1","2")

官方python doc在这里 https://docs.python.org/2/library/functions.html#super

答案 1 :(得分:0)

由于ChildFoo继承自ParentFoo,因此必须为父类提供参数

class ChildFoo(ParentFoo):
    def __init__(self, a, b, d, e, f=None):
         ParentFoo.__init__(self, a, b, c="fing")

我没有添加'c' - 因为在ChildFoo init ParentFoo时你似乎想要默认值。或者,您可以为所有父参数提供默认值