一个图书查询的问题
class BookManager:authors = []
def __init__(self):
book1 = Book('撒哈拉的故事','三毛','我每想你一次,天上便落下一粒沙,从此便有了撒哈拉。')
book2 = Book('梦里花落知多少','三毛','人人都曾拥有荷西,虽然他终会离去。')
book3 = Book('月亮与六便士','毛姆','满地都是六便士,他却抬头看见了月亮。')
self.books =
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('很可惜,我们暂时没有收录这位作者的作品')
{:10_256:} 那你肯定是有一个
class Book
在__init__肯定是有self.name self.author 和self.words这样的属性,这里book.author的用法就要参考Book这个class了 {:10_254:} {:10_279:} {:5_109:} 如果只有这个py文件我不会报错么?
为啥我感觉这样写会报错 book 下面没有authoe 属性呀 会不会是bookmanager 正在写bug 发表于 2022-2-10 11:44
如果只有这个py文件我不会报错么?
为啥我感觉这样写会报错 book 下面没有authoe 属性呀 会不会是bookmana ...
他只是发了一个类的定义而已,那里很明显还有一个Book类
类中 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 对象都被检索,程序打印出所有书籍的名称
Twilight6 发表于 2022-2-10 16:44
类中 books和 authors 都是存储 book 和 authors 对象的列表,book 对象 有实例属性 author ,那么自然 ...
谢谢,很详细了,不过我可能基础没打好,让我再消化一下吧,谢谢啦
页:
[1]