這篇文章將為大家詳細(xì)講解有關(guān)python面向?qū)ο缶幊痰姆椒ǎ【幱X得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、富裕網(wǎng)站維護(hù)、網(wǎng)站推廣。面向?qū)ο缶幊毯唵蝸碚f就是基于對 類 和 對象 的使用,所有的代碼都是通過類和對象來實(shí)現(xiàn)的編程就是面向?qū)ο缶幊蹋?/p>
面向?qū)ο蟮娜筇匦裕悍庋b、繼承、多態(tài)
首先創(chuàng)建一個(gè)類
#使用class創(chuàng)建一個(gè)School類,類中有個(gè)student方法 class School: def student(self): pass a1=School()
一、封裝
1、封裝:將某些內(nèi)容先封裝到一個(gè)地方,等到需要的時(shí)候再去調(diào)用
class School: def __init__(self,name,age): #構(gòu)造方法,創(chuàng)建對象是執(zhí)行 self.name=name self.age=age#創(chuàng)建對象a1,a2a1=School("zhangsan",18) a2=School("lisi",18)
上面代碼實(shí)現(xiàn)的就是封裝的功能,把各自的name和age分別封裝到了self的name和age屬性中,就等于被封裝到了對象a1和a2中
類中定義的函數(shù)叫做方法,帶有__init__的函數(shù)稱為構(gòu)造方法,在創(chuàng)建a1,a2對象時(shí)會自動(dòng)執(zhí)行。
2、調(diào)用:調(diào)用有兩種方式,通過對象直接調(diào)用和通過self間接調(diào)用
通過對象直接調(diào)用
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age))#創(chuàng)建對象a1,a2a1=School("zhangsan",18) a2=School("lisi",18) print a1.name,a1.age print a2.name,a2.age#執(zhí)行結(jié)果: zhangsan 18 lisi 18
通過self間接調(diào)用
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age)) #創(chuàng)建對象a1,a2 a1=School("zhangsan",18) a2=School("lisi",18) #執(zhí)行類中的方法時(shí),通過self間接調(diào)用被封裝的內(nèi)容 a1.student() a2.student() #執(zhí)行結(jié)果: #name:zhangsan,age:18 #name:lisi,age:18
二、繼承
1、繼承:既派生類(子類)可以繼承基類(父類)的方法,我們可以將多個(gè)類共有的方法提取到父類當(dāng)中,這樣子類僅需繼承父類而不必一一實(shí)現(xiàn)每個(gè)方法
在類名后面括號中寫上另一個(gè)類,表示繼承了那個(gè)類
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age)) def classroom(self): print("%s去教室"%self.name) class SchoolA(School): #SchoolA繼承School def __init__(self,name): self.name=name class SchoolB(SchoolA): #SchoolB繼承SchoolA def __init__(self,name): self.name=name #創(chuàng)建對象a1 a1=SchoolA("zhangsan") a1.classroom() #創(chuàng)建對象a2 a2=SchoolB("lisi") a2.classroom() #執(zhí)行結(jié)果: # zhangsan去教室 # lisi去教室
在上面代碼中我們可以看到,在SchoolA和SchoolB中都沒有classroom方法,但由于SchoolB繼承了SchoolA,而SchoolA又繼承了School,所以他們創(chuàng)建對象后都能
調(diào)用School中的classroom方法。
2、多繼承
在python中,類還可以繼承多個(gè)類,在繼承多個(gè)類時(shí),他對類中的函數(shù)查找有兩種方式
深度優(yōu)先:類是經(jīng)典類時(shí),多繼承情況下,會按照深度優(yōu)先方式查找
廣度優(yōu)先:類是新式類時(shí),多繼承情況下,會按照廣度優(yōu)先方式查找
(在python3.x中)都默認(rèn)為廣度優(yōu)先,但還是可以了解一下兩個(gè)的區(qū)別,新式類:當(dāng)前類或者基類繼承了objiect類就叫新式類,否者就是經(jīng)典類。
關(guān)于python面向?qū)ο缶幊痰姆椒ň头窒淼竭@里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。