Храните название, автора и год в атрибутах экземпляра; добавьте setters и метод, возвращающий новый словарь с информацией.
Класс Book: методы установки и получения данных книги
Храните название, автора и год в атрибутах экземпляра; добавьте setters и метод, возвращающий новый словарь с информацией.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо написать класс Book, в котором хранятся сведения о книге: название, автор и год выпуска. Требуется реализовать функции, позволяющие задать значения этих полей, а также функцию, возвращающую полную информацию о книге в удобном виде (например, в виде словаря или строки).
class Book:
def __init__(self):
self.title = ""
self.author = ""
self.year = None
# Методы для установки и получения информации
...
Ответ
Храните название, автора и год в атрибутах экземпляра; добавьте setters и метод, возвращающий новый словарь с информацией.
class Book:
def __init__(self):
self.title = ''
self.author = ''
self.year = None
def set_title(self, title):
self.title = title
def set_author(self, author):
self.author = author
def set_year(self, year):
self.year = year
def get_info(self):
return {'title': self.title, 'author': self.author,
'year': self.year}
Все данные принадлежат конкретной книге, а не разделяются между экземплярами. get_info возвращает новый словарь: замена его ключей не меняет поля книги. При необходимости в setter добавляют проверку типов и допустимости года. В реальном Python-коде простые атрибуты часто достаточно изменять напрямую; отдельные методы нужны, когда этого требует контракт или появляется валидация.