1. Главная
  2. Библиотека
  3. Программирование
  4. Разработайте класс Book, который будет представлять одн...
Разбор задачи

Разработайте класс Book, который будет представлять одну книгу. У книги должны быть следующие поля: заголовок, автор, год издания, ISBN и количество страниц. При создании объекта необходимо проверять корректность данных: заголовок, автор и ISBN должны

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Разработайте класс Book, который будет представлять одну книгу. У книги должны быть следующие поля: заголовок, автор, год издания, ISBN и количество страниц. При создании объекта необходимо проверять корректность данных: заголовок, автор и ISBN должны

Условие:

Разработайте класс Book, который будет представлять одну книгу. У книги должны быть следующие поля: заголовок, автор, год издания, ISBN и количество страниц. При создании объекта необходимо проверять корректность данных: заголовок, автор и ISBN должны быть непустыми строками, год издания должен быть целым положительным числом, а количество страниц — положительным целым числом. В случае некорректных данных конструктор должен выбрасывать осмысленные исключения. Для класса требуется определить методы __str__ и __repr__, которые возвращают удобные для пользователя и для отладки строковые представления книги. Нужно реализовать также методы сравнения: книги считаются равными, если совпадают автор и заголовок, а операция «меньше» определяется сначала сравнением по автору, а затем по заголовку при одинаковых авторах. Метод __len__ должен возвращать количество страниц книги.\nbook = Book("Война и мир", "Толстой", 1869, "978-5-389-07455-3", 1225)\nprint(len(book)) # 1225\nprint(book) # "Толстой — ’Война и мир’ (1869)"\nprint(book == Book("Война и мир", "Толстой", 1869, "111-1-111-11111-1", 1225)) # True

Решение:

Для решения этой задачи мы воспользуемся механизмом инкапсуляции и перегрузкой магических методов Python.

Реализация класса Book

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой магический метод в Python позволяет определить поведение оператора сравнения 'меньше чем' (<) для объектов класса?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет