Класс-член библиотеки, не могу понять, где я ошибаюсь

#python #python-3.x

#python #python-3.x

Вопрос:

Я пытаюсь выполнить серию задач по определению класса и, похоже, не могу пройти мимо этой. Это часть серии из 3 частей; в первой части предлагается смоделировать библиотечную книгу, которую я мог бы легко завершить.

В следующей части предлагается создать Member класс для моделирования члена библиотеки и включить borrow_book() и return_book() метод, а также получить список всех кредитных книг участника для распечатки в алфавитном порядке.

Я не могу понять, в какой части я ошибаюсь. Может ли кто-нибудь указать мне правильное направление? Я включил свой код пока ниже.

 class Book(object):

    def __init__(self, title, author, copies=1, loan=0):
        self.title = title
        self.author = author
        self.copies = copies
        self.loan = loan

    def checkbook(self, title):
        for book in self.title:
            if book.title in self.title:
                return book
            else:
                print("Sorry, Not Available.")

    def  borrow_book(self):
        abc = self.checkbook(title)
        print(abc)
        self.loan  = 1
        self.copies -= 1

    def return_book(self):
        self.loan -= 1

    def __str__(self):
        r = []
        r.append('Title: {}'.format(self.title))
        r.append('Author: {}'.format(self.author))
        r.append('Copies: {}'.format(self.copies))
        r.append('On loan: {}'.format(self.loan))
        return 'n'.join(r)

def sort_books(b):
    return b.title

class Member(object):

    def __init__(self, mid, name, loans=0):
        self.mid = mid
        self.name = name
        self.loans = loans
        self.d = {}

    def __str__(self, mid, name, loans=0):
        r = []
        r.append('ID: {}'.format(self.mid))
        r.append('Name: {}'.format(self.name))
        r.append('Loans: {}'.format(self.loans))
        l = ['{}'.format(b) for b in sorted(self.d.values(), key=sort_books)]
        return 'n'.join(r)
        return 'n'.join(l)
  

Комментарии:

1. borrow_book и return_book должен быть в Member классе, а не в Book class.

2. Book следует отслеживать только название и автора. Количество копий является свойством не книги, а коллекции, в которой хранится книга. Library Класс, например, может поддерживать dict типа {Book("Moby Dick", "Melville"): (2, 1), ...} , который указывает, что в библиотеке есть две копии Moby Dick , одна из которых в данный момент извлечена.

3. Как ты «ошибаешься»? В чем конкретно заключается ваш вопрос?