Python继承如何用于super().__ init__方法

时间:2017-07-19 19:04:08

标签: python

对Python不熟悉,我正在阅读面向对象Python的书,并且在编写器实验时定义了将由子类继承的PARENT类时遇到了以下代码。

class Property:
    def __init__(self, square_feet='', beds='', baths='', **kwargs):
        super().__init__(**kwargs)
        self.square_feet = square_feet
        self.num_bedrooms = beds
        self.num_baths = baths

我理解当我们继承到子类时会使用对super().__init__(**kwargs)的调用。但是我不明白为什么在定义父类时我们需要进行这个调用。是否必须这样做默认情况下,Python中的每个类都是“Object”类的子类?

作者解释说:

我们还包括对super().__init__的调用,以防我们不是多继承链中的最后一个调用。在这种情况下,我们“消耗”关键字参数,因为我们知道在继承层次结构的其他级别不需要它们。

当我们不继承时,我完全不明白为什么我们必须在PARENT CLASS级别进行此调用?

0 个答案:

没有答案