#python #oop
Вопрос:
Я пытался выполнить этот код. Это показывает эту ошибку
Ошибка типа: принимает 4 позиционных аргумента, но было дано 5
class Car: def __init__(self,make,model,year): self.make = make` self.model = model self.year = year self.odometer_reading = 0 def get_descriptive_name(self): long_name = str(self.year) ' ' self.make ' ' self.model return long_name.title() def read_odometer(self): print("This car has" str(self.odometer_reading) "miles on it ") # def update_odometer(self,mileage): # if (mileagegt;= self.odometer_reading): # self.odometer_reading = mileage # else: # print("You can't roll back an odometer ") #def increment_odometer(self): # self.odometer_reading = miles class ElectricCar(Car): def __init__(self,make,model,year): super().__init__(self,make,model,year) self.battery_size =70 def describe_battery(self): print("This car has a " str(self.battery_size) "kWh battery") myTesla = ElectricCar('Tesla','model_s',2016) print(myTesla.get_descriptive_name()) myTesla.describe_battery()
Когда я попытался выполнить его, появилось следующее сообщение об ошибке
Traceback (most recent call last): File "C:UsersPredatorPycharmProjects456main.py", line 34, in lt;modulegt; myTesla = ElectricCar('Tesla','model_s',2016) File "C:UsersPredatorPycharmProjects456main.py", line 27, in __init__ super().__init__(self,make,model,year) TypeError: __init__() takes 4 positional arguments but 5 were given Process finished with exit code 1
Я попробовал несколько настроек, но ни одна из них не сработала. Пожалуйста, помогите мне в этой ситуации.
Комментарии:
1. в python 3 при вызове
super().__init__()
функции не передавайтеself
ей аргумент. В своем коде попробуйте сделать этоsuper().__init__(make,model,year)
вElectricCar
классе2. Это хорошо сработало. Большое спасибо!