猿问

在Python中使用super(),我不理解最后的__init__调用

我有三个班级,如下所示:


class Page(object):

    def __init__(self, Obj_a, Obj_b):

        super().__init__(Obj_a, Obj_b)


class Report(object):

    def __init__(self, Obj_a, Obj_b):

        super().__init__()


class ReportingPage(Page,Report):

    def __init__(self, Obj_a, Obj_b):

        super().__init__(Obj_a, Obj_b)

我实例化一个ReportingPage对象。为此,Python抓取了MRO:

  1. Page首先调用该对象,因为该对象在的继承列表中排在第一位,并在ReportingPage其中调用其自己的__init__方法。

  2. 然后,它对做同样的事情Report

我不明白的两件事:

  1. 为什么我必须将参数传递给super.__init__in Page,何时Page仅调用__init__其继承自的内容object

  2. 为什么我不必做同样的事情Report


www说
浏览 289回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答