风变python基础语法第11关_Python基础语法学习笔记之风变第十四关项目实操

一、明确项目目标

需要一个图书管理系统,来帮助他管理书籍的借阅情况。他希望这个简易的程序可以做到:

二、分析过程,拆解项目

第一种用法是使用类生成实例对象。类作为实例对象的模版,每个实例创建后,都将拥有类的所有属性和方法。

第二种用法是用类将多个函数(方法)打包封装在一起,让类中的方法相互配合。

回到项目:我们的处理对象是每本具体的书,而每本书都有自己的属性信息,所以我们可以定义一个Book类,利用Book类创建一个个书的实例,绑定属性(对应用法1)。

而这个管理系统的运行主体,是多个可供选择的功能的叠加,所以我们可以创建一个系统运行类BookManager,将查询书籍、添加书籍等功能封装成类中的方法以供调用(对应用法2)。

三、代码实现,逐步执行

1、定义Book类

要介绍一个更符合编程习惯的方法__str__(self)

只要在类中定义了__str__(self)方法,那么当使用print打印实例对象的时候,就会直接打印出在这个方法中return的数据。

class Book:

def __init__(self, name, author, comment, state = 0):

self.name = name

self.author = author

self.comment = comment

self.state = state

def __str__(self):

if self.state == 0:

status = '未借出'

else:

status = '已借出'

return '名称:《%s》 作者:%s推荐语:%s\n状态:%s' % (self.name, self.author, self.comment, status)

book1 = Book('像自由一样美丽','林达','你要用光明来定义黑暗,用黑暗来定义光明')

# 传入参数,创建实例对象

print(book1)

# 直接打印对象即可,不能写成print(book1.__str__())

2、类BookManager的编写

menu()是与用户互动的界面,刚刚我们已经给出了demo:

内部逻辑如下:

1.查询所有书籍

# 调用方法show_all_book()

2.添加书籍

# 调用方法add_book()

3.借阅书籍

# 调用方法lend_book()

4.归还书籍

# 调用方法return_book()

5.退出系统

请输入数字选择对应的功能:

class BookManager:

books = []

# 创建一个列表,列表里每个元素都是Book类的一个实例

def __init__(self):

book1 = Book('惶然录','费尔南多·佩索阿','一个迷失方向且濒于崩溃的灵魂的自我启示,一首对默默无闻、失败、智慧、困难和沉默的赞美诗。')

book2 = Book('以箭为翅','简媜','调和空灵文风与禅宗境界,刻画人间之缘起缘灭。像一条柔韧的绳子,情这个字,不知勒痛多少人的心肉。')

book3 = Book('心是孤独的猎手','卡森·麦卡勒斯','我们渴望倾诉,却从未倾听。女孩、黑人、哑巴、醉鬼、鳏夫的孤独形态各异,却从未退场。', 1)

# 创建三个实例对象

self.books.append(book1)

self.books.append(book2)

self.books.append(book3)

# 往列表依次添加元素,注意调用类属性books时,self不能丢

# self.books = [book1, book2, book3]

# 上面三行代码,可简化为一行,即直接创建列表。这种情况下,可不用在前面创建空列表。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值