如何解决这个Python继承超级子调用?

如何解决这个Python继承超级子调用?,python,Python,如果我使用超级构造函数来创建一个从父类继承的类,那么是否可以使用相同的调用来设置属性来创建子类? 因此,在我的工作中,我正在创造一辆电动汽车。电动汽车是汽车的一个儿童级。 电动汽车有一个属性battery,该属性将通过其类构造函数初始化。我可以在我最初建造电动汽车的电话中指定电池的大小吗 目前它给了我一个错误,因为我有一个超级调用,它的参数比我的电动汽车构造函数少 例: 您在这里没有给出电池大小: my_tesla = ElectricCar('TeslaX', 2016) 将其更改为: my

如果我使用超级构造函数来创建一个从父类继承的类,那么是否可以使用相同的调用来设置属性来创建子类? 因此,在我的工作中,我正在创造一辆电动汽车。电动汽车是汽车的一个儿童级。 电动汽车有一个属性battery,该属性将通过其类构造函数初始化。我可以在我最初建造电动汽车的电话中指定电池的大小吗

目前它给了我一个错误,因为我有一个超级调用,它的参数比我的电动汽车构造函数少

例:


您在这里没有给出电池大小:

my_tesla = ElectricCar('TeslaX', 2016)
将其更改为:

my_tesla = ElectricCar('TeslaX', 2016, 1337)  # 1337 is battery size.

如果您希望提供默认值,还应在
电动车
中提供,如下所示:

def __init__(self, model, year, battery_size=70):
    super().__init__(model, year)
    self.battery = Battery(battery_size)

我不认为错误在你认为的地方:这里唯一会导致错误的一行是当你实例化我的特斯拉时,因为你没有提供电池大小。但是你应该发布你得到的全部错误。只是一个评论:不要做像描述电池之类的事情。使用
\uuuu repr\uuuu
\uuu str\uuu
方法
def\uu repr\uu(self):返回“Battery(batter\u size={})”格式(self.batter\u size)
。而不仅仅是打印(我的大电池)
def __init__(self, model, year, battery_size=70):
    super().__init__(model, year)
    self.battery = Battery(battery_size)