Музыкальные инструменты
Вы разрабатываете приложение для управления инвентарем инструментов музыкального оркестра. Вам необходимо моделировать различные типы музыкальных инструментов и их действия.
Вам предложено создать класс
MusicInstrument
с двумя атрибутами: name
и type
. Этот класс также должен иметь метод play()
, который выводит "Playing the instrument".Затем создайте класс
Guitar
, который наследуется от MusicInstrument
(у гитары type
равен String
. Это должно быть автоматически задано в __init__
класса Guitar
). Этот класс должен иметь метод tune()
, который выводит "Tuning the guitar". Метод play()
в классе Guitar
должен сначала вызывать метод tune()
, а затем вызывать play()
из родительского класса с помощью super()
.Создайте класс
Violin
аналогично классу Guitar
(у него тоже type
равен String
). Метод tune()
должен выводить "Tuning the violin".Наконец, создайте класс
Piano
, который также наследуется от MusicInstrument
(пианино имеет type
Keyboard
). Класс Piano
должен переопределить метод play()
, но при игре его не нужно настраивать.Input | Output |
guitar = Guitar('Gibson'); violin = Violin('Stradivarius'); piano = Piano('Steinway'); guitar.play(); violin.play(); piano.play(); print(guitar.type); print(violin.type); print(piano.type) | Tuning the guitar
Playing the instrument
Tuning the violin
Playing the instrument
Playing the instrument
String
String
Keyboard |
Примечание: Атрибуты
name
и type
инструмента должны передаваться в качестве параметров конструктору класса при создании экземпляра. Метод play()
должен вызываться без каких-либо параметров.Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB