对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级别进行此调用?