Python面向?qū)ο蠓庋b操作案例詳解
本文實(shí)例講述了Python面向?qū)ο蠓庋b操作。分享給大家供大家參考,具體如下:
目標(biāo)
封裝
小明愛(ài)跑步
存放家具
01. 封裝
封裝 是面向?qū)ο缶幊痰囊淮筇攸c(diǎn)
面向?qū)ο缶幊痰?第一步 —— 將 屬性 和 方法 封裝 到一個(gè)抽象的 類 中
外界 使用 類 創(chuàng)建 對(duì)象,然后 讓對(duì)象調(diào)用方法
對(duì)象方法的細(xì)節(jié) 都被 封裝 在 類的內(nèi)部
02. 小明愛(ài)跑步
需求
小明 體重 75.0 公斤
小明每次 跑步 會(huì)減肥 0.5 公斤
小明每次 吃東西 體重增加 1 公斤
提示:在 對(duì)象的方法內(nèi)部,是可以 直接訪問(wèn)對(duì)象的屬性 的!
代碼實(shí)現(xiàn):
class Person: """人類""" def __init__(self, name, weight): self.name = name self.weight = weight def __str__(self): return "我的名字叫 %s 體重 %.2f 公斤" % (self.name, self.weight) def run(self): """跑步""" print("%s 愛(ài)跑步,跑步鍛煉身體" % self.name) self.weight -= 0.5 def eat(self): """吃東西""" print("%s 是吃貨,吃完這頓再減肥" % self.name) self.weight += 1 xiaoming = Person("小明", 75) xiaoming.run() xiaoming.eat() xiaoming.eat() print(xiaoming)
2.1 小明愛(ài)跑步擴(kuò)展 —— 小美也愛(ài)跑步
需求
小明 和 小美 都愛(ài)跑步
小明 體重 75.0 公斤
小美 體重 45.0 公斤
每次 跑步 都會(huì)減少 0.5 公斤
每次 吃東西 都會(huì)增加 1 公斤
提示
在 對(duì)象的方法內(nèi)部,是可以 直接訪問(wèn)對(duì)象的屬性 的
同一個(gè)類 創(chuàng)建的 多個(gè)對(duì)象 之間,屬性 互不干擾!
03. 擺放家具
需求
房子(House) 有 戶型、總面積 和 家具名稱列表
新房子沒(méi)有任何的家具
家具(HouseItem) 有 名字 和 占地面積,其中
席夢(mèng)思(bed) 占地 4 平米
衣柜(chest) 占地 2 平米
餐桌(table) 占地 1.5 平米
將以上三件 家具 添加 到 房子 中
打印房子時(shí),要求輸出:戶型、總面積、剩余面積、家具名稱列表
剩余面積
在創(chuàng)建房子對(duì)象時(shí),定義一個(gè) 剩余面積的屬性,初始值和總面積相等
當(dāng)調(diào)用 add_item 方法,向房間 添加家具 時(shí),讓 剩余面積 -= 家具面積
思考:應(yīng)該先開(kāi)發(fā)哪一個(gè)類?
答案 —— 家具類
家具簡(jiǎn)單
房子要使用到家具,被使用的類,通常應(yīng)該先開(kāi)發(fā)
3.1 創(chuàng)建家具
class HouseItem: def __init__(self, name, area): """ :param name: 家具名稱 :param area: 占地面積 """ self.name = name self.area = area def __str__(self): return "[%s] 占地面積 %.2f" % (self.name, self.area) # 1. 創(chuàng)建家具 bed = HouseItem("席夢(mèng)思", 4) chest = HouseItem("衣柜", 2) table = HouseItem("餐桌", 1.5) print(bed) print(chest) print(table)
小結(jié)
創(chuàng)建了一個(gè) 家具類,使用到 init 和 str 兩個(gè)內(nèi)置方法
使用 家具類 創(chuàng)建了 三個(gè)家具對(duì)象,并且 輸出家具信息
3.2 創(chuàng)建房間
class House: def __init__(self, house_type, area): """ :param house_type: 戶型 :param area: 總面積 """ self.house_type = house_type self.area = area # 剩余面積默認(rèn)和總面積一致 self.free_area = area # 默認(rèn)沒(méi)有任何的家具 self.item_list = [] def __str__(self): # Python 能夠自動(dòng)的將一對(duì)括號(hào)內(nèi)部的代碼連接在一起 return ("戶型:%s\n總面積:%.2f[剩余:%.2f]\n家具:%s" % (self.house_type, self.area, self.free_area, self.item_list)) def add_item(self, item): print("要添加 %s" % item) ... # 2. 創(chuàng)建房子對(duì)象 my_home = House("兩室一廳", 60) my_home.add_item(bed) my_home.add_item(chest) my_home.add_item(table) print(my_home)
小結(jié)
創(chuàng)建了一個(gè) 房子類,使用到 init 和 str 兩個(gè)內(nèi)置方法
準(zhǔn)備了一個(gè) add_item 方法 準(zhǔn)備添加家具
使用 房子類 創(chuàng)建了 一個(gè)房子對(duì)象
讓 房子對(duì)象 調(diào)用了三次 add_item 方法,將 三件家具 以實(shí)參傳遞到 add_item 內(nèi)部
3.3 添加家具
需求
1> 判斷 家具的面積 是否 超過(guò)剩余面積,如果超過(guò),提示不能添加這件家具
2> 將 家具的名稱 追加到 家具名稱列表 中
3> 用 房子的剩余面積 - 家具面積
def add_item(self, item): print("要添加 %s" % item) # 1. 判斷家具面積是否大于剩余面積 if item.area > self.free_area: print("%s 的面積太大,不能添加到房子中" % item.name) return # 2. 將家具的名稱追加到名稱列表中 self.item_list.append(item.name) # 3. 計(jì)算剩余面積 self.free_area -= item.area
3.4 小結(jié)
主程序只負(fù)責(zé)創(chuàng)建 房子 對(duì)象和 家具 對(duì)象
讓 房子 對(duì)象調(diào)用 add_item 方法 將家具添加到房子中
面積計(jì)算、剩余面積、家具列表 等處理都被 封裝 到 房子類的內(nèi)部
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python圖像處理Pillow庫(kù)的基礎(chǔ)使用
Pillow庫(kù)是Python中最流行的圖像處理庫(kù)之一,它是PIL(Python Imaging Library)的一個(gè)分支,提供了豐富的圖像處理功能,使圖像處理變得簡(jiǎn)單而高效,在這篇文章中,我們將探討Pillow庫(kù)的一些基本功能,感興趣的朋友可以參考下2023-09-09Python爬蟲實(shí)現(xiàn)爬取京東手機(jī)頁(yè)面的圖片(實(shí)例代碼)
下面小編就為大家分享一篇Python爬蟲實(shí)現(xiàn)爬取京東手機(jī)頁(yè)面的圖片實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Python+Pytest實(shí)現(xiàn)壓力測(cè)試詳解
在現(xiàn)代Web應(yīng)用程序中,性能是至關(guān)重要的。為了確保應(yīng)用程序能夠在高負(fù)載下正常運(yùn)行,我們需要進(jìn)行性能測(cè)試。本文就來(lái)用Pytest進(jìn)行壓力測(cè)試,希望對(duì)大家有所幫助2023-03-03通過(guò)python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類
這篇文章主要介紹了通過(guò)python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類,比如兩個(gè)不同的工程項(xiàng)目針對(duì)的對(duì)象都是A,那么就需要將這兩個(gè)工程項(xiàng)目歸類到A當(dāng)中,可以減少很大一部分工作量,,需要的朋友可以參考下2023-03-03Python讀取含url圖片鏈接的txt文檔方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了三種Python讀取含url圖片鏈接的txt文檔方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04