nettkd 发表于 2022-2-10 07:07:30

一个图书查询的问题

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('很可惜,我们暂时没有收录这位作者的作品')

阿萨德按时 发表于 2022-2-10 08:28:38

{:10_256:}

qq1151985918 发表于 2022-2-10 09:21:22

那你肯定是有一个
class Book
在__init__肯定是有self.name   self.author 和self.words这样的属性,这里book.author的用法就要参考Book这个class了

伽羅~ 发表于 2022-2-10 09:42:29

{:10_254:}

别吃我饼干 发表于 2022-2-10 10:33:01

{:10_279:}

isdkz 发表于 2022-2-10 10:49:49

{:5_109:}

正在写bug 发表于 2022-2-10 11:44:26

如果只有这个py文件我不会报错么?
为啥我感觉这样写会报错 book 下面没有authoe 属性呀 会不会是bookmanager

isdkz 发表于 2022-2-10 11:56:28

正在写bug 发表于 2022-2-10 11:44
如果只有这个py文件我不会报错么?
为啥我感觉这样写会报错 book 下面没有authoe 属性呀 会不会是bookmana ...

他只是发了一个类的定义而已,那里很明显还有一个Book类

Twilight6 发表于 2022-2-10 16:44:57


类中 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 对象都被检索,程序打印出所有书籍的名称


nettkd 发表于 2022-2-10 21:37:33

Twilight6 发表于 2022-2-10 16:44
类中 books和 authors 都是存储 book 和 authors 对象的列表,book 对象 有实例属性 author ,那么自然 ...

谢谢,很详细了,不过我可能基础没打好,让我再消化一下吧,谢谢啦
页: [1]
查看完整版本: 一个图书查询的问题