Объектно-ориентированное программирование

Класс, __init__, атрибуты экземпляра и методы

Содержание курса

Плейлист с независимой очередью треков

Что уже дано

В редакторе есть незавершённый каркас класса Playlist. Проверяющая система не создаёт данные до кода ученика: после определения класса она сама создаёт несколько экземпляров Playlist и вызывает их методы.

Что нужно сделать

Допишите класс Playlist:

  • __init__(self, name) сохраняет name и создаёт новый пустой список tracks именно для этого экземпляра;
  • add_track(self, title, duration) создаёт словарь {"title": title, "duration": duration}, добавляет его в tracks и возвращает этот словарь;
  • total_duration(self) возвращает сумму длительностей всех треков;
  • longest_track(self) возвращает название самого длинного трека, для пустого плейлиста — None, а при равной длительности выбирает добавленный раньше трек.

Ввод и вывод

stdin не используется. Печатать через print в stdout ничего не нужно. Входные значения передаются скрытыми тестами через конструктор и методы класса. Результаты возвращаются методами и сохраняются в атрибутах экземпляров.

Пример использования

playlist = Playlist("Дорога")
playlist.add_track("Intro", 90)
playlist.add_track("Night Drive", 240)

print(playlist.total_duration())
print(playlist.longest_track())

Результат:

330
Night Drive
О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

РешениеPython · Python 3.12 (data: numpy, pandas, sklearn...)
Как проверяется решение

Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.

Класс, __init__, атрибуты экземпляра и методы — Python для продвинутых: ООП, типизация и тестирование — Latorn