Специальные методы: __repr__, __str__, __eq__, __len__
Содержание курса
Класс Book с repr, str, eq и len
Реализуйте класс Book, представляющий книгу со списком глав.
Что уже дано
Проверяющая система не создаёт заранее никаких переменных или файлов. После выполнения вашего кода скрытый проверщик сам создаёт объекты Book и проверяет их поведение. Видимый каркас класса — отправная точка: дополните его четырьмя специальными методами.
Что нужно сделать
Допишите класс Book со следующим поведением:
__init__(self, title: str, author: str, chapters: list[str])— сохраняет три атрибута экземпляра:title,author,chapters.__repr__(self) -> str— возвращает строку видаBook(title='Дюна', author='Херберт', chapters=3), гдеchapters— количество глав (целое число). Строка должна однозначно идентифицировать объект для разработчика.__str__(self) -> str— возвращает строку вида«Дюна» — Херберт (3 гл.). Формат:«{title}» — {author} ({n} гл.), гдеn— количество глав.__eq__(self, other) -> bool— два объектаBookравны, если совпадаютtitle,authorиchapters. Для объектов другого типа возвращайтеNotImplemented.__len__(self) -> int— возвращает количество глав.
Ввод и вывод
stdin не используется. Печатать через print в stdout ничего не нужно.
Проверяющая система создаёт объекты Book напрямую в коде и проверяет возвращаемые значения repr(), str(), == и len(). Никакого ввода от пользователя нет.
Пример использования
book = Book("Python без магии", "А. Автор", ["Старт", "Классы"])
print(str(book))
print(repr(book))
print(len(book))
Результат:
«Python без магии» — А. Автор (2 гл.)
Book(title='Python без магии', author='А. Автор', chapters=2)
2
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Как проверяется решение
Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
