小编Vzo*_*eet的帖子

Python多重继承:参数传递(**kwargs)和super()

我试图理解Python多重继承,我有点理解MRO,super()和在MI中传递参数,但是当我阅读下面的例子时,它让我很困惑.

class Contact:
    all_contacts = []

    def __init__(self, name=None, email=None, **kwargs):
        super().__init__(**kwargs)
        self.name = name
        self.email = email
        self.all_contacts.append(self)


class AddressHolder:
    def __init__(self, street=None, city=None, state=None, code=None, **kwargs):
        super().__init__(**kwargs)
        self.street = street
        self.city = city
        self.state = state
        self.code = code


class Friend(Contact, AddressHolder):
    def __init__(self, phone='', **kwargs):
        super().__init__(**kwargs)
        self.phone = phone
Run Code Online (Sandbox Code Playgroud)

现在我无法理解为什么在Contact和AddressHolder类中使用super().我的意思是当我们从父类继承但是Contact&AddressHolder都不从任何其他类继承时使用super().(从技术上讲,他们是继承自的object).这个例子让我对super()的正确使用感到困惑

python inheritance multiple-inheritance python-3.x

0
推荐指数
1
解决办法
3186
查看次数