python 面向?qū)ο髮W(xué)習(xí)總結(jié)

python 面向?qū)ο髮W(xué)習(xí)總結(jié)

ID:45098903

大?。?7.62 KB

頁數(shù):20頁

時(shí)間:2019-11-09

python 面向?qū)ο髮W(xué)習(xí)總結(jié)_第1頁
python 面向?qū)ο髮W(xué)習(xí)總結(jié)_第2頁
python 面向?qū)ο髮W(xué)習(xí)總結(jié)_第3頁
python 面向?qū)ο髮W(xué)習(xí)總結(jié)_第4頁
python 面向?qū)ο髮W(xué)習(xí)總結(jié)_第5頁
資源描述:

《python 面向?qū)ο髮W(xué)習(xí)總結(jié)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、引言提到面向?qū)ο?,總是離不開幾個(gè)重要的術(shù)語:多態(tài)(Polymorphism),繼承(Inheritance)和封裝(Encapsulation)。Python也是一種支持OOP的動(dòng)態(tài)語言,本文將簡單闡述Python對(duì)面向?qū)ο蟮闹С帧T谟懻揚(yáng)ython的OOP之前,先看幾個(gè)OOP術(shù)語的定義:·類:對(duì)具有相同數(shù)據(jù)和方法的一組對(duì)象的描述或定義?!?duì)象:對(duì)象是一個(gè)類的實(shí)例?!?shí)例(instance):一個(gè)對(duì)象的實(shí)例化實(shí)現(xiàn)?!?biāo)識(shí)(identity):每個(gè)對(duì)象的實(shí)例都需要一個(gè)可以唯一標(biāo)識(shí)這個(gè)實(shí)例的標(biāo)記?!?shí)例屬性(instanceattribut

2、e):一個(gè)對(duì)象就是一組屬性的集合?!?shí)例方法(instancemethod):所有存取或者更新對(duì)象某個(gè)實(shí)例一條或者多條屬性的函數(shù)的集合?!ゎ悓傩裕╟lassattribute):屬于一個(gè)類中所有對(duì)象的屬性,不會(huì)只在某個(gè)實(shí)例上發(fā)生變化·類方法(classmethod):那些無須特定的對(duì)性實(shí)例就能夠工作的從屬于類的函數(shù)。1.Python中的類與對(duì)象Python中定義類的方式比較簡單:class?類名:類變量def__init__(self,paramers):def?函數(shù)(self,...)其中直接定義在類體中的變量叫類變量,而在類的方法中

3、定義的變量叫實(shí)例變量。類的屬性包括成員變量和方法,其中方法的定義和普通函數(shù)的定義非常類似,但方法必須以self作為第一個(gè)參數(shù)。舉例:classMyFirstTestClass:classSpec="itisatestclass"def__init__(self,word):print"say"+worddefhello(self,name):print"hello"+name在Python類中定義的方法通常有三種:實(shí)例方法,類方法以及靜態(tài)方法。這三者之間的區(qū)別是實(shí)例方法一般都以self作為第一個(gè)參數(shù),必須和具體的對(duì)象實(shí)例進(jìn)行綁定才能訪問

4、,而類方法以cls作為第一個(gè)參數(shù),cls表示類本身,定義時(shí)使用@classmethod;而靜態(tài)方法不需要默認(rèn)的任何參數(shù),跟一般的普通函數(shù)類似.定義的時(shí)候使用@staticmethod。classMethodTest():count=0defaddCount(self):MethodTest.count+=1print"Iamaninstancemethod,mycountis"+str(MethodTest.count),self@staticmethoddefstaticMethodAdd():MethodTest.count+=1p

5、rint"Iamastaticmethond,mycountis"+str(MethodTest.count)@classmethoddefclassMethodAdd(cls):MethodTest.count+=1print"Iamaclassmethod,mycountis"+str(MethodTest.count),clsa=MethodTest()a.addCount()'''Iamaninstancemethod,mycountis1<__main__.MethodTestinstanceat0x011EC990>'''a

6、.staticMethodAdd();#Iamastaticmethond,mycountis2MethodTest.staticMethodAdd();#Iamastaticmethond,mycountis3a.classMethodAdd();#Iamaclassmethod,mycountis4__main__.MethodTestMethodTest.classMethodAdd();#Iamaclassmethod,mycountis5__main__.MethodTestMethodTest.addCount()'''Tr

7、aceback(mostrecentcalllast):File"",line1,inMethodTest.addCount()TypeError:unboundmethodaddCount()mustbecalledwithMethodTestinstanceasfirstargument(gotnothinginstead)'''從上面的例子來看,靜態(tài)方法和類方法基本上區(qū)別不大,特別是有Java編程基礎(chǔ)的人會(huì)簡單的認(rèn)為靜態(tài)方法和類方法就是一回事,可是在Python中事實(shí)是這樣的嗎?看下面的例子:

8、MethodTest.classMethodAdd();#Iamaclassmethod,mycountis5__main__.MethodTestclasssubMethodTest(MethodTest

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。