打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第14关课后习题讲解

根据题目需要,我们需要创建一个类 Book ,Book类中含有四个基本的属性:书名、作家、推荐语和借阅状态。所以我们需要用到初始化方法__init__,让实例被创建时自动获得这些属性。

######

######

同时我们需要实现上图中的 4 个功能,那就得定义另一个类 BookManager,该类含有五个方法(含主菜单):

①、主菜单:def menu()

②、显示书籍:show_all_book()

③、添加书籍:add_book()

④、借阅书籍:lend_book()

⑤、归还书籍:return_book()

######

而为什么要分为两个类呢,主要是我们 Book 类是为了让程序每次实例时初始化它的属性值,BookManager 类是为了实现我们的功能,二者区分开来,有利于代码的易读和整洁性

######

好了,我们再看回代码,Book 类不难理解,一个初始化化函数 __init__ 包含了四个实例化属性,而另一个函数 __str__ ,这个函数也是实例化后就执行,并返回 return 后面所带的值

######

######

接下来我们来分析一下 BookManager 类

######

######

这里也定义了一个初始化函数,其中 book1、book2、book3 是实例化对象,实例化了类 Book,即这三本书是默认存在的。接下来的三个 append 语句的结果是 self.books=[book1、book2、book3],即实例化对象的属性 books 含有这三个值

######

######

接下来的 menu 方法,主要是提供了我们对于功能的选择,根据我们的选择跳转执行相对应的方法

######

######

show_all_book 方法中,for book in self.books,根据我们之前学的知识,这一步是为了遍历上方说的 self.books 列表,而因为实例化 Book 类后会执行 __str__ 函数,即会有返回值,所以可以显示目前所有的书籍信息

######

######

add_book 方法中,代码比较简单,是让我们手动输入后,把这些值传入后实例化类 Book ,并在 self.books 中添加

######

######

check_book 方法,我们依旧是遍历我们的 self.books 列表,相信同学们没有忘记 self.books=[book1、book2、book3],而 book1、book2、book3 是我们的实例化对象,所以 book.name  实际上就是我们的实例化属性 name,当实例化属性 name 等于我们外部传入的值 name 时,我们就返回当前匹配的实例化对象,否则返回空

######

######

lend_book 方法,手动输入后,调用我们上面说到的 check_book 方法,如果返回值不为空,则继续下一步,再判断我们的 state 属性是否为 1,是则无法借阅,否则可以借阅书籍,并把当前书籍的 state 值改为 1(当该书籍未归还则无法借阅)

######

######

最后一个方法 return_book,依旧是传入 check_book 方法进行判断,根据返回值判断该书籍是否之前有存在在这个系统中,有则继续继续判断 state 值,不为 0 则归还成功

######

最后我们实例化类 BookManager,再调用它的 menu 方法执行开始程序的运行

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
第12关 预习分享
学习笔记30-22
万字长文深度剖析面向对象的javascript
Lua中实现类的原理
史上最全的Python面向对象知识点疏理
Python学习笔记《Python核心编程》第13章 面向对象编程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服