- скопируйте папку
homework_02для этой домашки (Памятка: https://github.com/OtusTeam/BasePython/tree/homeworks) - в модуле
exceptionsобъявите следующие исключения:- LowFuelError
- NotEnoughFuel
- CargoOverload
- доработайте базовый класс
base.Vehicle:- добавьте атрибуты
weight,started,fuel,fuel_consumptionсо значениями по умолчанию - добавьте инициализатор для установки
weight,fuel,fuel_consumption - добавьте метод
start, который, если ещё не состояниеstarted, проверяет, что топлива больше нуля, и обновляет состояниеstarted, иначе выкидывает исключениеexceptions.LowFuelError - добавьте метод
move, который проверяет, что достаточно топлива для преодоления переданной дистанции, и изменяет количество оставшегося топлива, иначе выкидывает исключениеexceptions.NotEnoughFuel
- добавьте атрибуты
- создайте датакласс
Engineв модулеengine, добавьте атрибутыvolumeиpistons - в модуле
carсоздайте классCar- класс
Carдолжен быть наследникомVehicle - добавьте атрибут
engineклассуCar - объявите метод
set_engine, который принимает в себя экземпляр объектаEngineи устанавливает на текущий экземплярCar
- класс
- в модуле
planeсоздайте классPlane- класс
Planeдолжен быть наследникомVehicle - добавьте атрибуты
cargoиmax_cargoклассуPlane - добавьте
max_cargoв инициализатор (переопределите родительский) - объявите метод
load_cargo, который принимает число, проверяет, что в сумме с текущимcargoне будет перегруза, и обновляет значение, в ином случае выкидывает исключениеexceptions.CargoOverload - объявите метод
remove_all_cargo, который принимает число, обнуляет значениеcargoи возвращает значениеcargo, которое было до обнуления
- класс
- автоматический тест
test_homework_02проходит