通过在方法内调用super来继承python方法

时间:2015-03-16 06:10:52

标签: python oop inheritance

我正在开发一个系统,它有一系列单个多级继承层次结构。其中一个方法(适用于所有类)必须对大多数类执行相同的操作,即将列表传递给其父类。

我知道,如果一个人没有在其中一个继承的类中定义一个方法,那么它的父母就会知道这个方法。使用方法。但是当我们使用super方法时,我们需要提到被调用类的名称。

我知道实现此目的的一种方法是在每个类中使用类名作为参数重新定义方法。是否有任何优雅的方法,我可以在最顶层的父项定义它一次,然后只在必要时覆盖它?

现在的实现看起来像这样

class a(object):

    def __init__(self):
        self.myL = list()
        print 'hello'


class b(a):

    def __init__(self):
        super(b,self).__init__()

    def resolve(self, passVal):
        print passVal
        self.myL.append(passVal)
        super(b,self).resolve(passVal+1)


class c(b):

    def __init__(self):
        super(c,self).__init__()
    def resolve(self, passVal):
        print passVal
        self.myL.append(passVal)
        super(c,self).resolve(passVal+1)

相反,如果我可以在class a中定义解析,然后所有其他类从它继承该方法。我理解永远无法使用它。但重新定义方法似乎是一项很多不必要的额外工作。

0 个答案:

没有答案