-2
如果我使用超级构造函数来创建从父类继承的类,是否可以使用相同的调用来设置属性来创建子类? 因此,我在创造一辆电动车。电动汽车是汽车的小孩。 电动汽车有一个属性电池,它将通过它的Class构造函数进行初始化。我可以在我最初的电话中指定电池的大小来构建电动汽车吗?如何解决这个Python继承超子调用?
目前它给我的错误,因为我有一个比我的电动车的构造函数有参数少
防爆超级电话:
class Car():
def __init__(self,model,year):
self.model = model
self.year = year
def getInfo(self):
print(self.model, self.year)
class ElectricCar(Car):
def __init__(self, model, year, battery_size):
super().__init__(model, year)
self.battery = Battery(battery_size)
class Battery():
def __init__(self, battery_size=70):
self.battery_size = battery_size
def describe_battery(self):
print("Battery size is", self.battery_size)
my_tesla = ElectricCar('TeslaX', 2016)
my_tesla.getInfo()
print(my_tesla.battery)
my_tesla.battery.describe_battery()
my_big_tesla = ElectricCar('TeslaY', 2016, 90)
my_big_tesla.battery.describe_battery()
我不认为错误是你认为它是:这将导致唯一的线这里的错误是当你实例化my_tesla时,因为你不提供电池大小。但是你应该发布你得到的完整错误。 –
只是一个评论:不要做像'describe_battery'这样的东西。使用'__repr__'和'__str__'方法。 'def __repr __(self):return'Battery(batter_size = {})'.format(self.batter_size)'。不只是'print(my_big_test.battery)' – MaxNoe