#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. Как ты «ошибаешься»? В чем конкретно заключается ваш вопрос?