面向?qū)ο螅∣OP)是一種對(duì)現(xiàn)實(shí)世界理解和抽象的方法,對(duì)象的含義是指在現(xiàn)實(shí)生活中的具體事物, 一切皆對(duì)象 ,Python 是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,面向?qū)ο缶幊毯?jiǎn)單來(lái)說(shuō)就是一種 封裝代碼 的方式。
員工經(jīng)過(guò)長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過(guò)團(tuán)隊(duì)的力量開(kāi)發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專注于為企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、電商網(wǎng)站開(kāi)發(fā),微信小程序,軟件按需設(shè)計(jì)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
Python 中類的定義使用 class 關(guān)鍵字定義類,語(yǔ)法如下所示:
舉例,定義一個(gè)類 Cat
構(gòu)造方法 init() 會(huì)在類實(shí)例化時(shí)自動(dòng)調(diào)用。無(wú)論構(gòu)造方法還是其他方法都需要將 self 作為第一個(gè)參數(shù),它代表類的實(shí)例。
類創(chuàng)建好后,可以直接通過(guò)類名訪問(wèn)屬性,格式為: 類名.屬性名 ,比如我們?cè)L問(wèn) Cat 類的 color 屬性,如下所示:
創(chuàng)建對(duì)象也稱類的實(shí)例化,比如我們通過(guò) Cat 類創(chuàng)建對(duì)象,如下所示:
創(chuàng)建好對(duì)象后,使用它訪問(wèn)屬性和調(diào)用方法了,如下所示:
內(nèi)部私有屬性和方法是可以被訪問(wèn)和調(diào)用的。
我們來(lái)一起看個(gè)例子,如下所示:
輸出結(jié)果:
Python 支持類的繼承,而且支持多繼承,語(yǔ)法格式為:
示例如下所示:
如果繼承的父類方法不能滿足我們的需求,這時(shí)子類可以 重寫(xiě) 父類方法,如下所示:
一、實(shí)例方法,類方法,靜態(tài)方法
我們首先寫(xiě)一個(gè)類,里面包含這三種方法。
可以看到,我們用到了兩個(gè)裝飾器。
我們用類和實(shí)例分別調(diào)用下類方法
我們用類和實(shí)例分別調(diào)用下靜態(tài)方法
靜態(tài)方法其實(shí)就是把一個(gè)普通的函數(shù)寫(xiě)在類里,與直接在外層寫(xiě)一個(gè)函數(shù)是一樣的,本質(zhì)上是一個(gè)函數(shù)。
為了方便理解,我們分別打印下這些方法的類型
通過(guò)type()查看對(duì)象是方法還是函數(shù)
此外,還可以通過(guò)inspect模塊判斷某個(gè)對(duì)象是否是某種類型,返回布爾值。
用法
小Tips:概念理解
直接def定義的,我們叫做函數(shù)
把函數(shù)放到類里,我們叫做方法
方法可以通過(guò)裝飾器staticmethod轉(zhuǎn)為(放在方法里的)函數(shù)
繼承
一個(gè)類繼承另一個(gè)類時(shí),會(huì)自動(dòng)獲得另一個(gè)類的所有屬性和方法,被繼承的類稱之為父類,新類稱為子類。子類擁有父類所有的屬性和方法,并且可以定義自己的屬性和方法
我們以上邊的Rectangle類為父類來(lái)試一下
1)完全繼承
可以看到,子類完全繼承父類后,可以直接調(diào)用父類的所有方法。
2)部分繼承
部分繼承:繼承父類后,修改父類的同名方法
我們?cè)囈幌拢琒quare繼承Rectangle后,修改__init__()方法
3)拓展父類的方法
在保留父類中某個(gè)方法的代碼同時(shí),對(duì)方法進(jìn)行拓展
可以在方法中加入"super().方法名"來(lái)實(shí)現(xiàn)
4)@property
python面向?qū)ο蟮娜筇卣鞯挠梅ê秃瘮?shù)的用法一樣。面向?qū)ο蟮娜筇匦允侵阜庋b、繼承和多態(tài)。面向?qū)ο缶幊淌且环N編程方式,此編程方式的落地需要使用類和對(duì)象來(lái)實(shí)現(xiàn),所以,面向?qū)ο缶幊唐鋵?shí)就是對(duì)類和對(duì)象的使用。類就是一個(gè)模板,模板里可以包含多個(gè)函數(shù),函數(shù)里實(shí)現(xiàn)一些功能對(duì)象則是根據(jù)模板創(chuàng)建的實(shí)例,通過(guò)實(shí)例對(duì)象可以執(zhí)行類中的函數(shù)。
特征:私有屬性與私有方法不能從外部被調(diào)用,也不能被子類繼承
唯一寫(xiě)法:在屬性或方法前面加上__(兩個(gè)下劃線)
我們寫(xiě)一個(gè)簡(jiǎn)單的例子,創(chuàng)建一個(gè)類,包含私有方法、私有屬性、普通方法、普通屬性,并生成一個(gè)實(shí)例
私有屬性和私有方法可以從內(nèi)部被調(diào)用(總不能我寫(xiě)了,但是哪都不讓用吧)
我們?cè)囋囋陬惱镌偌尤胍粋€(gè)新的方法,調(diào)用私有方法和屬性
可以看到,私有屬性和私有方法是可以在類內(nèi)部被調(diào)用的。
舉個(gè)私有屬性應(yīng)用場(chǎng)景的例子
二。object類
我們?cè)囈幌?/p>
三。多繼承
一個(gè)子類可以繼承多個(gè)父類,用逗號(hào)隔開(kāi)
多個(gè)父類中有同名方法時(shí),按照繼承順序進(jìn)行調(diào)用
四。多態(tài)
當(dāng)不同的實(shí)例,有同名的方法時(shí),我們可以一個(gè)函數(shù),傳入不同的實(shí)例,執(zhí)行對(duì)應(yīng)的方法。
我們定義一個(gè)貓和一個(gè)狗的類,兩個(gè)類中都有'叫'的方法。并各生成一個(gè)實(shí)例。
定義一個(gè)函數(shù),用函數(shù)來(lái)調(diào)用'叫'的方法
這就叫多態(tài)。