Python 面向?qū)ο笾庋b、繼承、多態(tài)操作實(shí)例分析
本文實(shí)例講述了Python 面向?qū)ο笾庋b、繼承、多態(tài)操作。分享給大家供大家參考,具體如下:
封裝、繼承、多態(tài) 是面向?qū)ο蟮?大特性
為啥要封裝
好處
在使用面向過(guò)程編程時(shí),當(dāng)需要對(duì)數(shù)據(jù)處理時(shí),需要考慮用哪個(gè)模板中哪個(gè)函數(shù)來(lái)進(jìn)行操作,但是當(dāng)用面向?qū)ο缶幊虝r(shí),因?yàn)橐呀?jīng)將數(shù)據(jù)存儲(chǔ)到了這個(gè)獨(dú)立的空間中,這個(gè)獨(dú)立的空間(即對(duì)象)中通過(guò)一個(gè)特殊的變量(class)能夠獲取到類(模板),而且這個(gè)類中的方法是有一定數(shù)量的,與此類無(wú)關(guān)的將不會(huì)出現(xiàn)在本類中,因此需要對(duì)數(shù)據(jù)處理時(shí),可以很快速的定位到需要的方法是誰(shuí) 這樣更方便
全局變量是只能有1份的,多很多個(gè)函數(shù)需要多個(gè)備份時(shí),往往需要利用其它的變量來(lái)進(jìn)行儲(chǔ)存;而通過(guò)封裝 會(huì)將用來(lái)存儲(chǔ)數(shù)據(jù)的這個(gè)變量 變?yōu)榱藢?duì)象中的一個(gè)“全局”變量,只要對(duì)象不一樣那么這個(gè)變量就可以再有1份,所以這樣更方便
代碼劃分更清晰
面向過(guò)程
全局變量1 全局變量2 全局變量3 ... def 函數(shù)1(): pass def 函數(shù)2(): pass def 函數(shù)3(): pass def 函數(shù)4(): pass def 函數(shù)5(): pass
面向?qū)ο?/p>
class 類(object): 屬性1 屬性2 def 方法1(self): pass def 方法2(self): pass class 類2(object): 屬性3 def 方法3(self): pass def 方法4(self): pass def 方法5(self): pass
為啥要繼承
說(shuō)明
能夠提升代碼的重用率,即開發(fā)一個(gè)類,可以在多個(gè)子功能中直接使用
繼承能夠有效的進(jìn)行代碼的管理,當(dāng)某個(gè)類有問題只要修改這個(gè)類就行,而其繼承這個(gè)類的子類往往不需要就修改
怎樣理解多態(tài)
class MiniOS(object): """MiniOS 操作系統(tǒng)類 """ def __init__(self, name): self.name = name self.apps = [] # 安裝的應(yīng)用程序名稱列表 def __str__(self): return "%s 安裝的軟件列表為 %s" % (self.name, str(self.apps)) def install_app(self, app): # 判斷是否已經(jīng)安裝了軟件 if app.name in self.apps: print("已經(jīng)安裝了 %s,無(wú)需再次安裝" % app.name) else: app.install() self.apps.append(app.name) class App(object): def __init__(self, name, version, desc): self.name = name self.version = version self.desc = desc def __str__(self): return "%s 的當(dāng)前版本是 %s - %s" % (self.name, self.version, self.desc) def install(self): print("將 %s [%s] 的執(zhí)行程序復(fù)制到程序目錄..." % (self.name, self.version)) class PyCharm(App): pass class Chrome(App): def install(self): print("正在解壓縮安裝程序...") super().install() linux = MiniOS("Linux") print(linux) pycharm = PyCharm("PyCharm", "1.0", "python 開發(fā)的 IDE 環(huán)境") chrome = Chrome("Chrome", "2.0", "谷歌瀏覽器") linux.install_app(pycharm) linux.install_app(chrome) linux.install_app(chrome) print(linux)
運(yùn)行結(jié)果
Linux 安裝的軟件列表為 []
將 PyCharm [1.0] 的執(zhí)行程序復(fù)制到程序目錄...
正在解壓縮安裝程序...
將 Chrome [2.0] 的執(zhí)行程序復(fù)制到程序目錄...
已經(jīng)安裝了 Chrome,無(wú)需再次安裝
Linux 安裝的軟件列表為 ['PyCharm', 'Chrome']
更多關(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的自媒體小助手---登錄頁(yè)面的實(shí)現(xiàn)代碼
這篇文章主要介紹了基于Python的自媒體小助手---登錄頁(yè)面的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Python基于遞歸實(shí)現(xiàn)電話號(hào)碼映射功能示例
這篇文章主要介紹了Python基于遞歸實(shí)現(xiàn)電話號(hào)碼映射功能,結(jié)合實(shí)例形式分析了Python針對(duì)字典的遞歸、遍歷相關(guān)操作技巧,需要的朋友可以參考下2018-04-04在python下實(shí)現(xiàn)word2vec詞向量訓(xùn)練與加載實(shí)例
這篇文章主要介紹了在python下實(shí)現(xiàn)word2vec詞向量訓(xùn)練與加載實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06通過(guò)Python實(shí)現(xiàn)猜燈謎游戲的示例代碼
新的一年迎來(lái)了元宵節(jié),元宵佳節(jié)在陪伴家人的同時(shí),自然也少不了賞花燈,猜燈謎的項(xiàng)目。本文會(huì)通過(guò)Python實(shí)現(xiàn)這一游戲,需要的可以參考一下2022-02-02使用pandas實(shí)現(xiàn)csv/excel sheet互相轉(zhuǎn)換的方法
今天小編就為大家分享一篇使用pandas實(shí)現(xiàn)csv/excel sheet互相轉(zhuǎn)換的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python多分支語(yǔ)句的三種結(jié)構(gòu)詳解
這篇文章主要介紹了Python多分支語(yǔ)句的三種結(jié)構(gòu),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08