Ошибка в классе Python
У меня есть такой код:
class Auto:
name = 'Mercedes'
old = 2015
speed = 230
color = 'Black'
price = 3000000
def __init__(self, name, old, speed, color, price):
self.name = name
self.old = old
self.speed = speed
self.color = color
self.price = price
def search(self):
i = input('Введите название авто: ')
if i == 'Mercedes':
print('Инфо об авто!', self.name, self.old, self.speed, self.color, self.price)
Но при запуске выдаёт ошибку:
Traceback (most recent call last): File "C:\Users\Я\AppData\Local\Programs\Python\Python39\test.py", line 19, in p = Auto() TypeError: init() missing 4 required positional arguments: 'name', 'old', 'speed', and 'color'
Помогите, пожалуйста
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
или так:
class Auto:
name = 'Mercedes'
old = 2015
speed = 230
color = 'Black'
price = 3000000
def __init__(self):
super().__init__()
def search(self):
i = input('Введите название авто: ')
if i == 'Mercedes':
print('Инфо об авто!',
self.name,
self.old,
self.speed,
self.color,
self.price
)
auto = Auto()
auto.search()
или так:
class Auto:
def __init__(self):
super().__init__()
self.name = 'Mercedes'
self.old = 2015
self.speed = 230
self.color = 'Black'
self.price = 3000000
def search(self):
i = input('Введите название авто: ')
if i == 'Mercedes':
print('Инфо об авто!',
self.name,
self.old,
self.speed,
self.color,
self.price
)
auto = Auto()
auto.search()
Автор решения: CrazyElf
→ Ссылка
Ещё так можно - класс содержит словарь экземпляров-автомобилей:
class Auto:
autos = dict()
def __init__(self, name, old, speed, color, price):
self.name = name
self.old = old
self.speed = speed
self.color = color
self.price = price
Auto.autos[self.name] = self
def search():
i = input('Введите название авто: ')
if i in Auto.autos:
auto = Auto.autos[i]
print('Инфо об авто!', auto.name, auto.old, auto.speed, auto.color, auto.price)
else:
print('Авто не найдено!', i)
Auto(name = 'Lada', old = 1990, speed = 100, color = 'White', price = 300000)
Auto(name = 'Mercedes', old = 2015, speed = 230, color = 'Black', price = 3000000)
Auto(name = 'Porsche', old = 2015, speed = 330, color = 'Red', price = 30000000)
Auto.search()
Auto.search()
Ввод-вывод:
Введите название авто: Mercedes
Инфо об авто! Mercedes 2015 230 Black 3000000
Введите название авто: Geely
Авто не найдено! Geely