小编Dre*_*man的帖子

在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)
Run Code Online (Sandbox Code Playgroud)

我实例化一个ReportingPage对象.要做到这一点,Python爬行MRO:

  1. Page首先调用该对象,因为它首先在继承列表中排序ReportingPage,然后调用它自己的__init__方法.

  2. 然后它也是这样做的Report.

我不明白的两件事:

  1. 为什么我必须将参数传递给super.__init__in Page,什么Page时候才会调用__init__它继承的内容,object.

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

python multiple-inheritance python-3.x

4
推荐指数
1
解决办法
139
查看次数

标签 统计

multiple-inheritance ×1

python ×1

python-3.x ×1