Вопрос по учебному заданию Python, ООП
Класс – учебная дисциплина. Известно наименование дисциплины, количество лекций, лабораторных занятий, наличие курсовой работы. При "сложении" наименование взять из первого аргумента, наличие курсовой из второго. Количество лабораторных результата равно максимуму лабораторных аргументов, количество лекций - минимуму. Выдать список дисциплин, по которым предусмотрены курсовые работы с количеством лекций больше заданного значения.
class Discipline:
def __init__(self, name, lecture, laboratory, course):
self.name = name
self.lecture = lecture
self.laboratory = laboratory
self.course = course
def __add__(self, other):
name = self.name
course = other.course
return Discipline(name, self.lecture, self.laboratory, course)
Не могу понять что от меня дальше требуется в задании.
Есть подобное задание:
Класс – книга.
Для каждой книги известны автор, название, год издания, цена.
При "сложении" авторов объединить через подчеркивание, название взять из первого аргумента, год издания - средний арифметический годов аргументов, цена - максимальная цена книг.
Определить, сколько книг имеют заданный год издания с ценой, превышающей заданную.
class Book:
def __init__(self, author, name, year, cost):
self.author = author
self.name = name
self.year = year
self.cost = cost
def __add__(self, other):
new_author = self.author + '_' + other.author
new_name = self.name
new_year = (self.year + other.year) / 2
new_cost = max(self.cost, other.cost)
return Book(new_author, new_name, new_year, new_cost)
def get_author(self):
return self.author
def get_name(self):
return self.name
def get_year(self):
return self.year
def get_cost(self):
return self.cost
class Library:
def __init__(self, list_of_books):
self.list_of_books = list_of_books
def read(self):
print("автор ", end='')
author = input()
print("название ", end='')
name = input()
print("год издания ", end='')
year = int(input())
print("цена ", end='')
cost = int(input())
self.list_of_books.append(Book(author, name, year, cost))
def display(self):
for i in self.list_of_books:
print(i.get_author(), i.get_name(), i.get_year(), i.get_cost())
def search_books(self):
print("год издания ", end='')
year = int(input())
print("цена ", end='')
cost = int(input())
for i in self.list_of_books:
if i.get_year() == year:
if i.get_cost() >= cost:
print(i.get_author(), i.get_name(), i.get_year(), i.get_cost())
book1 = Book('Булгаков', 'Мастер и Маргарита', 1937, 1500)
book2 = Book('Достоевский', 'Преступление и наказание', 1866, 500)
book3 = Book('Ремарк', 'Три товарища', 1958, 333)
book4 = Book('Оруэлл', '1984', 1984, 1499)
book5 = Book('Булгаков', 'Собачье сердце', 1958, 1499)
library = Library([book1, book2, book3, book4, book5])
print("#ввод новой книги")
library.read()
print("#показать все книги")
library.display()
print("#поиск книги")
library.search_books()