Задача была продолжением классов только что имела дело с абстрактными классами. Абстрактные классы Это классы, которые имеют функции, которые не имеют в ним тело в простых терминах, функции объявляются в этом классе, но его функциональность не определена там и для выполнения функции, полученный класс должен определить его функциональность.
Python использует Abcmeta Класс для определения абстрактных базовых классов и имеет декоратор, @abstractmethod указать, когда есть абстрактный метод.
Задача: Учитывая Книга Класс и класс решения, напишите MyBook класс, который делает следующее: • Наследует от Книга • имеет параметризованный конструктор, принимающий эти параметры:
- Строка заглавие
- Строка автор
- int Цена • реализует Книга * Класс ‘Абстрактный ** Дисплей () * Метод, поэтому он печатает эти линии:
- Название:, пространство, а затем текущий экземпляр Название Отказ
- Автор:, пространство, а затем текущий экземпляр Автор Отказ
- Цена:, пространство, а затем текущий экземпляр Цена Отказ
from abc import ABCMeta, abstractmethod class Book(object, metaclass=ABCMeta): def __init__(self,title,author): self.title=title self.author=author @abstractmethod def display(): pass class MyBook(Book): def __init__(self, title, author, price): self.title = title self.author = author self.price = price def display(self): print(f'Title: {self.title}') print(f'Author: {self.author}') print(f'Price: {self.price}') title=input() author=input() price=int(input()) new_novel=MyBook(title,author,price) new_novel.display() ''' Sample Input: The Alchemist Paulo Coelho 248 Sample Output: Title: The Alchemist Author: Paulo Coelho Price: 248 '''
Оригинал: “https://dev.to/idimaimuna/day-13-abstract-classes-110j”