【Python】Python语言学习:面向对象编程,类和对象,封装、继承和多态
這一周Python語(yǔ)言學(xué)習(xí),記錄如下。
01
面向?qū)ο缶嶰OP
1.1 為什么學(xué)習(xí)和應(yīng)用OOP?
1 OOP適合更加復(fù)雜的需求分析和項(xiàng)目開(kāi)發(fā)。
2 OOP具有更強(qiáng)大的封裝能力。
3 OOP相比于面向過(guò)程編程(OPP),是另一種編程思維,從誰(shuí)來(lái)做思考需求分析和代碼設(shè)計(jì)與開(kāi)發(fā)。
4 OOP可以提升我數(shù)據(jù)科學(xué)工作的效率。
1.2 什么是OOP?
OOP全稱是(Object Oriented Programming),面向?qū)ο缶幊?#xff0c;一種編程思維和方式。
面對(duì)需求分析時(shí),OPP會(huì)思考怎么做這個(gè)需求,而OOP會(huì)思考誰(shuí)來(lái)做這個(gè)需求,并且進(jìn)一步思考這個(gè)誰(shuí)需要具備什么特征和行為,即這個(gè)誰(shuí)的屬性和方法。通過(guò)OOP,可以把這個(gè)誰(shuí)的屬性和方法封裝在一起,做成一個(gè)類。類是一種抽象,類似建房子的圖紙;對(duì)象是類的具體化或者實(shí)例化,類似按著圖紙建成一棟棟房子。這個(gè)房子有什么特征和能夠做什么,就取決于房子的圖紙(類)的先前的設(shè)計(jì)。你會(huì)發(fā)現(xiàn),面向?qū)ο缶幊?#xff0c;更接近我們的生活,更能夠靈活性地表達(dá)我們的生活。
1.3 怎么學(xué)習(xí)OOP?
通過(guò)OOP的概念,我們發(fā)現(xiàn),學(xué)習(xí)OOP時(shí),我們需要學(xué)習(xí)這些內(nèi)容:
1 OOP是一種編程思維和方式。
2 OOP的需求分析是從誰(shuí)來(lái)做開(kāi)始的,并且要想清楚這個(gè)誰(shuí)要有什么職能。
3 OOP的兩個(gè)核心概念:類和對(duì)象。
4 OOP的三個(gè)重要特性:封裝、繼承和多態(tài)。
5 OOP的屬性和方法的類型,例如實(shí)例屬性和方法、類屬性和方法、靜態(tài)方法。
6 學(xué)習(xí)和使用OOP來(lái)設(shè)計(jì)和實(shí)現(xiàn)負(fù)責(zé)的項(xiàng)目和系統(tǒng)。
02
類和對(duì)象
2.1 概念描述
類和對(duì)象是OOP的兩個(gè)核心概念。
類是抽象,不能直接使用,它是對(duì)一群具有相同特征或者行為的事物的一個(gè)統(tǒng)稱。
1 特征稱為屬性
2 行為稱為方法
對(duì)象是具體的,可以直接使用,它是類的具體存在,具有類所設(shè)計(jì)的屬性和方法。
舉例說(shuō)明:
類相當(dāng)于建房圖紙,對(duì)象相當(dāng)于按著建房圖紙建造的一棟棟樓房。
在程序開(kāi)發(fā)中,應(yīng)該先有類,再有對(duì)象;應(yīng)該先設(shè)計(jì)要使用的類,再設(shè)計(jì)其它類;設(shè)計(jì)類的時(shí)候遵循奧卡姆剃刀原則,即類設(shè)計(jì)的時(shí)候,不要增加沒(méi)有的或者不必要的屬性和方法。
2.2 類設(shè)計(jì)和生成
使用關(guān)鍵詞class來(lái)設(shè)計(jì)類。
簡(jiǎn)單示例。
需求分析,需求如下
18歲的小明喜歡跑步和讀書(shū)。
20歲的小紅也喜歡跑步和讀書(shū)。
根據(jù)需求,我們創(chuàng)建一個(gè)Person類,具有姓名和年齡屬性,跑步和讀書(shū)方法。
參考代碼如下:
結(jié)果如下。
03
封裝
封裝是面向?qū)ο缶幊痰囊淮筇匦浴?br />OOP的第一步,把屬性和方法封裝到一個(gè)抽象類中。
外界使用類創(chuàng)建對(duì)象,然后用對(duì)象調(diào)用方法。
對(duì)象方法的細(xì)節(jié)被封裝在類的內(nèi)部。
前面的Person類就采用了封裝技術(shù)。
04
繼承
OOP有三大特性,分別是封裝、繼承和多態(tài)。
1 封裝,根據(jù)這個(gè)誰(shuí)的職能將屬性和方法封裝到一個(gè)抽象的類中
2 繼承,實(shí)現(xiàn)代碼重用,相同的代碼不需要重復(fù)編寫(xiě)。編寫(xiě)程序時(shí),請(qǐng)遵循不寫(xiě)重復(fù)代碼塊的原則。
3 多態(tài),不同的對(duì)象調(diào)用相同的方法,產(chǎn)生不同的執(zhí)行結(jié)果,增加代碼的靈活度,讓代碼可做更豐富的功能。
繼承的知識(shí)點(diǎn),羅列如下:
子類繼承自父類,可以直接享受父類中已經(jīng)封裝好的方法,不需要再次開(kāi)發(fā)。
子類根據(jù)自己職能,封裝子類特有的屬性和方法。
繼承具有傳遞性。
當(dāng)父類的方法實(shí)現(xiàn)不能滿足子類需求時(shí),可以對(duì)父類方法進(jìn)行重寫(xiě)(一種是覆蓋父類的方法,另一種是對(duì)父類方法功能進(jìn)行擴(kuò)展,需要的位置使用super().父類方法)
子類對(duì)象不能直接訪問(wèn)父類的私有屬性和方法(一種隱私保護(hù)技術(shù)),可以通過(guò)父類的公有方法間接訪問(wèn)。
子類可以多個(gè)繼承類,比方說(shuō),孩子類繼承父親和母親類的特性和方法。多重繼承的時(shí)候,避免各個(gè)類里面具有相同的方法。
如果沒(méi)有父類,建議統(tǒng)一繼承自object。
05
多態(tài)
多態(tài)是指不同的子類對(duì)象調(diào)用相同的父類方法,會(huì)產(chǎn)生不同的執(zhí)行結(jié)果。
多態(tài)的知識(shí)點(diǎn):
1 多態(tài)的好處,增加代碼的靈活度
2 多態(tài)的構(gòu)建,以繼承和重寫(xiě)父類方法為前提。
繼承和多態(tài)的一個(gè)簡(jiǎn)單實(shí)例。
需求分析:
HR需要招聘程序員和設(shè)計(jì)師,基于OOP采用繼承和多態(tài)編寫(xiě)代碼。
參考代碼:
結(jié)果如下:
06
總結(jié)
OOP是一種編程方式和思維框架,掌握和熟悉OOP,可以響應(yīng)更加復(fù)雜的需求和開(kāi)發(fā)更加復(fù)雜的系統(tǒng)。
OOP的兩大核心概念是類和對(duì)象,三大特性是封裝、集成和多態(tài)。
總結(jié)
以上是生活随笔為你收集整理的【Python】Python语言学习:面向对象编程,类和对象,封装、继承和多态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js 把线性的数据结构改成树形结构
- 下一篇: websocket python爬虫_p