风变python基础语法第11关_Python基础语法学习笔记之风变第十四关项目实操
一、明確項目目標
需要一個圖書管理系統(tǒng),來幫助他管理書籍的借閱情況。他希望這個簡易的程序可以做到:
二、分析過程,拆解項目
第一種用法是使用類生成實例對象。類作為實例對象的模版,每個實例創(chuàng)建后,都將擁有類的所有屬性和方法。
第二種用法是用類將多個函數(shù)(方法)打包封裝在一起,讓類中的方法相互配合。
回到項目:我們的處理對象是每本具體的書,而每本書都有自己的屬性信息,所以我們可以定義一個Book類,利用Book類創(chuàng)建一個個書的實例,綁定屬性(對應用法1)。
而這個管理系統(tǒng)的運行主體,是多個可供選擇的功能的疊加,所以我們可以創(chuàng)建一個系統(tǒng)運行類BookManager,將查詢書籍、添加書籍等功能封裝成類中的方法以供調用(對應用法2)。
三、代碼實現(xiàn),逐步執(zhí)行
1、定義Book類
要介紹一個更符合編程習慣的方法__str__(self)
只要在類中定義了__str__(self)方法,那么當使用print打印實例對象的時候,就會直接打印出在這個方法中return的數(shù)據(jù)。
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狀態(tài):%s' % (self.name, self.author, self.comment, status)
book1 = Book('像自由一樣美麗','林達','你要用光明來定義黑暗,用黑暗來定義光明')
# 傳入?yún)?shù),創(chuàng)建實例對象
print(book1)
# 直接打印對象即可,不能寫成print(book1.__str__())
2、類BookManager的編寫
menu()是與用戶互動的界面,剛剛我們已經(jīng)給出了demo:
內(nèi)部邏輯如下:
1.查詢所有書籍
# 調用方法show_all_book()
2.添加書籍
# 調用方法add_book()
3.借閱書籍
# 調用方法lend_book()
4.歸還書籍
# 調用方法return_book()
5.退出系統(tǒng)
請輸入數(shù)字選擇對應的功能:
class BookManager:
books = []
# 創(chuàng)建一個列表,列表里每個元素都是Book類的一個實例
def __init__(self):
book1 = Book('惶然錄','費爾南多·佩索阿','一個迷失方向且瀕于崩潰的靈魂的自我啟示,一首對默默無聞、失敗、智慧、困難和沉默的贊美詩。')
book2 = Book('以箭為翅','簡媜','調和空靈文風與禪宗境界,刻畫人間之緣起緣滅。像一條柔韌的繩子,情這個字,不知勒痛多少人的心肉。')
book3 = Book('心是孤獨的獵手','卡森·麥卡勒斯','我們渴望傾訴,卻從未傾聽。女孩、黑人、啞巴、醉鬼、鰥夫的孤獨形態(tài)各異,卻從未退場。', 1)
# 創(chuàng)建三個實例對象
self.books.append(book1)
self.books.append(book2)
self.books.append(book3)
# 往列表依次添加元素,注意調用類屬性books時,self不能丟
# self.books = [book1, book2, book3]
# 上面三行代碼,可簡化為一行,即直接創(chuàng)建列表。這種情況下,可不用在前面創(chuàng)建空列表。
總結
以上是生活随笔為你收集整理的风变python基础语法第11关_Python基础语法学习笔记之风变第十四关项目实操的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开创顶墙门柜定制的楚楚顶墙发展前景好吗?
- 下一篇: 自己写网络小说(自己写小说的网站)