Изучаю ООП, есть такая задача
Напишите класс Tool - Инструмент. Каждый инструмент имеет запас прочности - 100 единиц, который уменьшается на 10 единиц, когда им работают.
Также у инструмента есть метод action(), который имитирует работу инструмента. По умолчанию он только уменьшает прочность инструмента при каждом вызове.
Наследуйте от класса Tool классы конкретных инструментов: Saw (пила), Axe (топор), Drill (дрель), Hammer (молоток), Screwdriver (шуруповёрт).
Переопределите их методы action(), чтобы они вызывали метод родителя, а также выводили сообщение, имитирующее действие этого конкретного инструмента. Например, пила может выводить сообщение “ZZZZZZZZZ”.
Напишите класс Robot.
По умолчанию у робота нет инструмента (в конструкторе нужно явно прописать это).
У робота должно быть три метода:
setup_tool() - установить инструмент - устанавливает указанный инструмент.
drop_tool() - снять инструмент - роняет текущий инструмент.
action() - выполнить действие. Метод должен вызвать action() того инструмента, который установлен на роботе. Если инструмент отсутствует или сломался, метод должен выводить соответствующие сообщения об ошибках.
Я написал структуру классов.
Не понимаю теперь, как одеть роботу инструмент?
Именно что должен делать метод setup_tool()?
class Tools: strength = 100 def action(self): Tools.strength -= 10 class Saw(Tools): def action(self): super().action() print("БРБРБРБР") class Axe(Tools): def action(self): super().action() print("бух бух") class Drill(Tools): def action(self): super().action() print("бзбзбз") class Hummer(Tools): def action(self): super().action() print("бах бах") class Screwdriver(Tools): def action(self): super().action() print("псссс") class Robot: def __init__(self, tool=None): self.tool = tool def setup_tool(self): pass def drop_tool(self): pass def action(self): pass