在一个图书管理程序中,类book包含了书的相关信息,编写一个集合类
时间: 2024-05-07 07:15:38 浏览: 9
BookCollection,用来存储和管理Book类的对象。
BookCollection类包含以下属性和方法:
属性:
- books: 一个列表,用来存储Book类的对象。
方法:
- add_book(book): 将Book类的对象添加到books列表中。
- remove_book(book): 从books列表中移除Book类的对象。
- get_book(index): 返回指定索引位置的Book类的对象。
- get_books(): 返回所有Book类的对象的列表。
- search_book(title): 根据书名查找Book类的对象,返回第一个匹配的对象,如果没有找到则返回None。
- sort_books(): 对books列表中的Book类的对象按照书名进行排序。
下面是Book和BookCollection类的示例代码:
```python
class Book:
def __init__(self, title, author, isbn):
self.title = title
self.author = author
self.isbn = isbn
def __str__(self):
return f"{self.title} by {self.author}, ISBN: {self.isbn}"
class BookCollection:
def __init__(self):
self.books = []
def add_book(self, book):
self.books.append(book)
def remove_book(self, book):
self.books.remove(book)
def get_book(self, index):
return self.books[index]
def get_books(self):
return self.books
def search_book(self, title):
for book in self.books:
if book.title == title:
return book
return None
def sort_books(self):
self.books.sort(key=lambda book: book.title)
# 示例用法
book1 = Book("The Great Gatsby", "F. Scott Fitzgerald", "9780141182636")
book2 = Book("To Kill a Mockingbird", "Harper Lee", "9780061120084")
book3 = Book("1984", "George Orwell", "9780451524935")
book_collection = BookCollection()
book_collection.add_book(book1)
book_collection.add_book(book2)
book_collection.add_book(book3)
for book in book_collection.get_books():
print(book)
print("Searching for '1984':")
print(book_collection.search_book("1984"))
print("Removing 'The Great Gatsby'")
book_collection.remove_book(book1)
print("Sorting books by title:")
book_collection.sort_books()
for book in book_collection.get_books():
print(book)
```
输出结果:
```
The Great Gatsby by F. Scott Fitzgerald, ISBN: 9780141182636
To Kill a Mockingbird by Harper Lee, ISBN: 9780061120084
1984 by George Orwell, ISBN: 9780451524935
Searching for '1984':
1984 by George Orwell, ISBN: 9780451524935
Removing 'The Great Gatsby'
Sorting books by title:
1984 by George Orwell, ISBN: 9780451524935
To Kill a Mockingbird by Harper Lee, ISBN: 9780061120084
```