ООП · 7 из 14
Два одинаковых велосипеда
Механик дважды завёл в систему один и тот же велосипед. Проверка velosiped_iz_bazy == velosiped_s_formy отвечает «разные», хотя номер на раме один и тот же, — и дубликат уезжает в список.
Что сделать
Сделайте так, чтобы один и тот же велосипед, заведённый дважды, считался одним.
Что приходит
nomer— номер на раме, строкаtarif— тариф, целое; на равенство не влияет
Что должен уметь
== сравнивает номера, с не-велосипедом — False; в множестве велосипеды с одним номером — один: нужен и __hash__.
Допишите класс Velosiped в редакторе справа.
Проверка создаёт его объекты и зовёт методы — то, что напечатано,
на проверку не влияет.
a = Velosiped('V-12', 60)
b = Velosiped('V-12', 90)
a == b
True
Класс Velosiped принимает номер и тариф. Два велосипеда считаются одинаковыми, если совпадает номер: тариф меняется по сезону, а номер на раме — нет.
Сравнение с чем-то, что велосипедом не является, даёт False, а не ошибку. Одинаковые велосипеды должны попадать в множество как один — значит, кроме сравнения, понадобится и __hash__.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.