0

Почему выдает ошибку?А если взять у класса родителя color а не model,код сработает.

https://code.sololearn.com/c9QYMataYoYf/?ref=app

26th Nov 2021, 11:33 AM
Вячеслав Уржумов
Вячеслав Уржумов - avatar
6 ответов
+ 2
class CarGruz(Car): def __init__(self,model,color,weight): super().__init__(model, color) self.weight = weight Car3 = CarGruz("Kamaz","Синий",40)
26th Nov 2021, 11:56 AM
Alexey Kopyshev
Alexey Kopyshev - avatar
+ 1
Спасибо,это я понял.Но мне все же интересно,почему если брать только color,то код срабатывает.Это зависит от очередности в родительском классе?
26th Nov 2021, 1:07 PM
Вячеслав Уржумов
Вячеслав Уржумов - avatar
+ 1
Абсолютно без разницы как ты аргумент называешь - в данном случае важен порядок, в котором аргументы ожидаются - это позиционные аргументы. Есть ещё именнованные аргументы и вот у них порядок не имеет значения, главное чтобы они приходили после позиционных. Зы. У тебя срабатываетт model, только ты туда ссылку на сам объект положил - self: super().__init__(self,model)
26th Nov 2021, 2:10 PM
Alexey Kopyshev
Alexey Kopyshev - avatar
0
А чтобы взять только model?Без color
26th Nov 2021, 12:07 PM
Вячеслав Уржумов
Вячеслав Уржумов - avatar
0
Тогда не вызывай super(), иначе ты должен передать два параметра - model и color. Можешь сделать в родительском классе дефолтное значение у color, например, color= "Белый" или пустую строку оставь color =""
26th Nov 2021, 12:24 PM
Alexey Kopyshev
Alexey Kopyshev - avatar
0
Спасибо.
26th Nov 2021, 4:06 PM
Вячеслав Уржумов
Вячеслав Уржумов - avatar