书架 类 正在获取书名和类型
Bookshelf classes getting title and genre of book
我正在尝试编写代码,将 'fiction' 本书添加到书架,然后打印 'fiction' 本书的名称。这是我目前所拥有的。
class Book:
def __init__(self,title,genre):
self.title = title
self.genre = genre
def get_book(self):
return self.title
class Bookshelf:
def __init__(self,title,genre,books):
self.title = title
self.genre = genre
self.books = []
def add_book(self,book):
self.books.append(books)
return True
s1 = Book('Black Roses', 'Fiction')
s2 = Book('Red and Grey', 'Non-fiction')
s3 = Book('Pride and Prejudice','Fiction')
bookshelf = Bookshelf('Fiction')
有什么帮助吗?
由于 Bookshelf.__init__
方法将 self.books
初始化为一个空列表,因此不需要 books
参数。
由于每个书架都专门用于特定类型,因此您应该确保书籍不会放错架子。
class Bookshelf:
def __init__(self,title,genre):
self.title = title
self.genre = genre
self.books = []
def add_book(self,book):
if self.genre != book.genre:
raise ValueError(r"Can't put a {book.genre} book on a {self.genre} shelf")
self.books.append(books)
s1 = Book('Black Roses', 'Fiction')
s2 = Book('Red and Grey', 'Non-fiction')
s3 = Book('Pride and Prejudice','Fiction')
f = Bookshelf("Fiction Books", "Fiction")
nf = Bookshelf("Non-Fiction Books", "Non-fiction")
f.add_book(s1)
nf.add_book(s2)
f.add_book(s3)
# Print all fiction books
for book in f.books:
print(book.get_book())
class Book:
def __init__(self,title,genre):
self.title = title
self.genre = genre
def get_book(self):
return self.title
class Bookshelf:
def __init__(self):
self.books = []
def add_book(self,book):
self.books.append(book)
return True
def get_book(self, genre):
res = []
for book in self.books:
if book.genre==genre:
res.append(book.title)
return res
s1 = Book('Black Roses', 'Fiction')
s2 = Book('Red and Grey', 'Non-fiction')
s3 = Book('Pride and Prejudice','Fiction')
z = Bookshelf()
z.add_book(s1)
z.add_book(s2)
z.add_book(s3)
z.get_book('Fiction')
输出
['Black Roses', 'Pride and Prejudice']
我正在尝试编写代码,将 'fiction' 本书添加到书架,然后打印 'fiction' 本书的名称。这是我目前所拥有的。
class Book:
def __init__(self,title,genre):
self.title = title
self.genre = genre
def get_book(self):
return self.title
class Bookshelf:
def __init__(self,title,genre,books):
self.title = title
self.genre = genre
self.books = []
def add_book(self,book):
self.books.append(books)
return True
s1 = Book('Black Roses', 'Fiction')
s2 = Book('Red and Grey', 'Non-fiction')
s3 = Book('Pride and Prejudice','Fiction')
bookshelf = Bookshelf('Fiction')
有什么帮助吗?
由于 Bookshelf.__init__
方法将 self.books
初始化为一个空列表,因此不需要 books
参数。
由于每个书架都专门用于特定类型,因此您应该确保书籍不会放错架子。
class Bookshelf:
def __init__(self,title,genre):
self.title = title
self.genre = genre
self.books = []
def add_book(self,book):
if self.genre != book.genre:
raise ValueError(r"Can't put a {book.genre} book on a {self.genre} shelf")
self.books.append(books)
s1 = Book('Black Roses', 'Fiction')
s2 = Book('Red and Grey', 'Non-fiction')
s3 = Book('Pride and Prejudice','Fiction')
f = Bookshelf("Fiction Books", "Fiction")
nf = Bookshelf("Non-Fiction Books", "Non-fiction")
f.add_book(s1)
nf.add_book(s2)
f.add_book(s3)
# Print all fiction books
for book in f.books:
print(book.get_book())
class Book:
def __init__(self,title,genre):
self.title = title
self.genre = genre
def get_book(self):
return self.title
class Bookshelf:
def __init__(self):
self.books = []
def add_book(self,book):
self.books.append(book)
return True
def get_book(self, genre):
res = []
for book in self.books:
if book.genre==genre:
res.append(book.title)
return res
s1 = Book('Black Roses', 'Fiction')
s2 = Book('Red and Grey', 'Non-fiction')
s3 = Book('Pride and Prejudice','Fiction')
z = Bookshelf()
z.add_book(s1)
z.add_book(s2)
z.add_book(s3)
z.get_book('Fiction')
输出
['Black Roses', 'Pride and Prejudice']