Написание функции для реставрации книг, в которых Библиотека пытается обновить книгу, в настоящее время хранящуюся указанным Патроном. Книга перенесена из заимствований покровителя в список доступных книг библиотеки. Я закодировал большую часть этого, но я не уверен, что мой цикл верен, и я понятия не имею, куда вставить мой missingIdError, любые предложения? Примечание. У меня также есть класс Patron и они уже определены вместе с идентификатором, поэтому не нужно беспокоиться о недостающем классе.Функции в методах класса: где поднимать ошибки?
class DuplicateIdError (Exception):
def __init__(self, id, category = "Book" or "Patron"):
self.id = int(id)
self.category = str(category)
def __str__(self):
return 'duplicate {} ID: #{}'.format(self.category,self.id)
def __repr__(self):
return 'duplicate {} ID: #{}'.format(self.category,self.id)
class MissingIdError (LookupError):
def __init__(self, id, category = "Book" or "Patron"):
self.id = int(id)
self.category = str(category)
def __str__(self):
return 'duplicate {}: {}'.format(self.id, self.category)
def __repr__(self):
return 'duplicate {}: {}'.format(self.id, self.category)
class Library:
def __init__(self, books=None, patrons=None):
self.books = []
self.patrons = []
def __str__(self):
return "Library(<{}>, <{}>)".format(self.self.books, self.patrons)
def __repr__(self):
return "Library(<{}>, <{}>)".format(self.self.books, self.patrons)
#Returns None.
#Raises a DuplicateIdError if there's already a book in the library with that id#.
#Raises a MissingIdError if the patron or book wasn't found
def reshelve_book(self, patron_id, book_id):
for patron in self.patrons:
for book in self.books:
try:
if book.book_id == book_id:
raise DuplicateIdError(book_id,"Book")
elif book.book_id != book_id:
self.books.append(book)
book.borroweds.remove(book)
Спасибо за подробное объяснение. Я действительно думал о сложности функции и хорошо знал о конструкторе. –
С момента его восстановления, взяв книгу из заимствованного списка владельца и будучи вставленным обратно в библиотеку. –
Итак, я предполагаю, что у каждого покровителя есть список заимствованных книг ... обновлено – AChampion