# Базовый класс ИЗДАНИЕ
class Izdanie:
def __init__(self, nazvanie, avtor):
self.nazvanie = nazvanie
self.avtor = avtor
def display_info(self):
pass
def is_target(self, author_name):
# Метод для определения, является ли данное издание искомым по фамилии автора
return self.avtor.lower() == author_name.lower()
# Дочерний класс КНИГА
class Kniga(Izdanie):
def __init__(self, nazvanie, avtor, god, izdatelstvo):
super().__init__(nazvanie, avtor)
self.god = god
self.izdatelstvo = izdatelstvo
def display_info(self):
print(f"[Книга] Автор: {self.avtor}, Название: «{self.nazvanie}», Год: {self.god}, Издательство: {self.izdatelstvo}")
# Дочерний класс СТАТЬЯ
class Statya(Izdanie):
def __init__(self, nazvanie, avtor, zhurnal, nomer, god):
super().__init__(nazvanie, avtor)
self.zhurnal = zhurnal
self.nomer = nomer
self.god = god
def display_info(self):
print(f"[Статья] Автор: {self.avtor}, Название: «{self.nazvanie}» // Журнал: {self.zhurnal}, №{self.nomer}, {self.god}")
# Дочерний класс ЭЛЕКТРОННЫЙ РЕСУРС
class ElektronnyResurs(Izdanie):
def __init__(self, nazvanie, avtor, ssylka, annotatsiya):
super().__init__(nazvanie, avtor)
self.ssylka = ssylka
self.annotatsiya = annotatsiya
def display_info(self):
print(f"[Электронный ресурс] Автор: {self.avtor}, Название: «{self.nazvanie}»\n Ссылка: {self.ssylka}\n Аннотация: {self.annotatsiya}")
# Создание списка из n изданий
izdaniya = [
Kniga("Война и мир", "Толстой", 1869, "Русский вестник"),
Statya("Современные технологии", "Иванов", "Научный вестник", 3, 2024),
ElektronnyResurs("Официальная