Вы — инженер на космической станции, где работают разные роботы. Ваша задача — создать программу на Python, которая моделирует их работу.
Описание:
На станции есть три типа роботов: уборщики, ремонтники и исследователи. У каждого робота есть имя, уровень энергии и состояние (готов или занят). Вы должны:
- Создать базовый класс Robot с приватными атрибутами и несколькими вариантами конструктора.
- Реализовать дочерние классы для разных типов роботов.
- Вывод информации о роботе должен осуществлять через оператор print(object_robot), в виде
Робот <name>
статус: <готов/занят>
энергия: <уровень энергии>
- Базовый класс Robot:
- Приватные атрибуты: name (имя), energy (энергия, от 0 до 100), status (состояние: "готов", "занят" и "разряжен").
- Конструктор который принимает:
- только name, устанавливает energy = 100, status = "готов".
- name и energy (проверяет, что энергия в диапазоне 0-100, иначе ставит 100), status = "готов".
- объект класса Robot, копирует его имя, устанавливает energy = 100, меняет назначение (тип робота) на новый, status = "готов".
- Методы:
- get_name() — возвращает имя робота.
- get_energy() — возвращает текущий уровень энергии.
- get_status() — возвращает состояние робота.
- work() — вычитает 10 единиц энергии, если хватает и статус "готов", меняет статус на "занят" (иначе выводит сообщение об ошибке: "Требуется подзарядка" и меняться статус на "разряжен").
- recharge() — восстанавливает энергию до 100, меняет статус на "готов".
- Дочерние классы (наследуются от базового класса Robot):
каждый дочерний класс должен содержать метод work(), при запуске которого сначала выполняется метод work() базового класса, затем метод дочернего класса.
- CleanerRobot (робот-уборщик):
- выводит "Робот [имя] убирает мусор на станции".
- RepairRobot (робот-ремонтник):
- выводит "Робот [имя] чинит панель управления".
- ExplorerRobot (робот-исследователь):
- выводит "Робот [имя] исследует астероид".
- Метод work() дочернего класса должен выдавать сообщение о том, что робот делает, если он в статусе "готов" или "занят".
Если робот находится в статусе "разряжен", то то он должен вывести "Робот [имя] разряжен"
Напишите реализацию данных классов, и в качестве ответа прикрепит файл с раширением py.