|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
class BookManager:
authors = []
def __init__(self):
book1 = Book('撒哈拉的故事','三毛','我每想你一次,天上便落下一粒沙,从此便有了撒哈拉。')
book2 = Book('梦里花落知多少','三毛','人人都曾拥有荷西,虽然他终会离去。')
book3 = Book('月亮与六便士','毛姆','满地都是六便士,他却抬头看见了月亮。')
self.books = [book1,book2,book3]
self.authors.append(book1.author)
self.authors.append(book2.author)
self.authors.append(book3.author)
--------------------------------------------------------------------------以上代码都理解
def show_author_book(self):
author = input('请输入想查询作家的名称:')
if author in self.authors:
print(author + '的作品有:')
for book in self.books:
if book.author == author: #这里book.author的用法不太理解,请高手指点一下,谢谢
print(book)
else:
print('很可惜,我们暂时没有收录这位作者的作品')
类中 books 和 authors 都是存储 book 和 authors 对象的列表,book 对象 有实例属性 author ,那么自然 book.author 就是调用该属性,返回此时 book 对象的作者名
从 show_author_book 函数上看这方法是用于显示用户输入的作家所有书籍作品,在 BookManager 类中有 authors 实例属性
authors 中存的都是各书作者,在 show_author_book 方法中首先判断 用户输入的作家是否在 authors 中
if author in self.authors:
print(author + '的作品有:')
for book in self.books:
if book.author == author:
print(book)
若存在进入 if 代码快,进行用 for 循环遍历各个书籍对象,确定书籍对象的 作者 是否为 用户输入的作者
若等于用户输入的作者,则此时打印出此书籍对象,直到所有 Book 对象都被检索,程序打印出所有书籍的名称
|
|