diff --git a/part2_OOP/lesson3/README.md b/part2_OOP/lesson3/README.md new file mode 100644 index 0000000..752154c --- /dev/null +++ b/part2_OOP/lesson3/README.md @@ -0,0 +1,18 @@ +Домашнее задание 3. + +Создайте класс `Car`, который имеет атрибуты: +`make` (марка автомобиля), +`model` (модель автомобиля) и +`year` (год выпуска). +Дайте им также метод `display_info()`, который выводит +информацию о машине (марка, модель и год). + +Создайте несколько объектов класса `Car` +с разными характеристиками и вызовите метод +`display_info()` для каждого из них. + +Добавьте метод `calculate_age()` в класс `Car`, +который будет рассчитывать и возвращать возраст +автомобиля на текущий год. + + diff --git a/part2_OOP/lesson3/cars.py b/part2_OOP/lesson3/cars.py new file mode 100644 index 0000000..3b6e237 --- /dev/null +++ b/part2_OOP/lesson3/cars.py @@ -0,0 +1,29 @@ +from datetime import datetime as dt + + +class Car: + def __init__(self, **kwargs) -> None: + self.make = kwargs.get("make") + self.model = kwargs.get("model") + self.year = kwargs.get("year") + + def display_info(self): + return (x for x in (self.make, self.model, self.year) if x is not None) + + def calculate_age(self): + if self.year is None: + return "Неизвестно" + return dt.today().year - self.year + + +cars = ( + Car(make="Ваз", model="Нива", year=2000), + Car(make="Mitsubishi", model="Colt", year=2007), + Car(make="Газ", model="Вогла"), + Car(make="БРДМ", year=1993), +) + +for car in cars: + print(*car.display_info()) + print("возраст тс:", car.calculate_age()) + print()