继承python方法并在方法内部调用super

2024-09-28 05:15:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我知道,如果一个人没有在继承的类中定义一个方法,就会使用其父类的方法。但是当我们使用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中定义resolve,然后所有其他类从中继承该方法。我知道a永远用不上它。但是重新定义这个方法似乎有很多不必要的额外工作。你知道吗


Tags: 方法self列表定义层次结构init系统def

热门问题