python面向?qū)ο缶幊痰姆椒?/h1>

這篇文章將為大家詳細(xì)講解有關(guān)python面向?qū)ο缶幊痰姆椒?,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)在網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、成都APP應(yīng)用開(kāi)發(fā)、網(wǎng)站運(yùn)營(yíng)等方面均有出色的表現(xiàn),憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解各客戶的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,我們更提供一系列營(yíng)銷型網(wǎng)站建設(shè),網(wǎng)站制作和網(wǎng)站推廣的服務(wù),以推動(dòng)各中小企業(yè)全面信息化,并利用創(chuàng)新技術(shù)幫助各行業(yè)提升企業(yè)形象和運(yùn)營(yíng)效率。

面向?qū)ο缶幊毯?jiǎn)單來(lái)說(shuō)就是基于對(duì) 類 和 對(duì)象 的使用,所有的代碼都是通過(guò)類和對(duì)象來(lái)實(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)建對(duì)象是執(zhí)行
        self.name=name
        self.age=age#創(chuàng)建對(duì)象a1,a2a1=School("zhangsan",18)
a2=School("lisi",18)

上面代碼實(shí)現(xiàn)的就是封裝的功能,把各自的name和age分別封裝到了self的name和age屬性中,就等于被封裝到了對(duì)象a1和a2中

類中定義的函數(shù)叫做方法,帶有__init__的函數(shù)稱為構(gòu)造方法,在創(chuàng)建a1,a2對(duì)象時(shí)會(huì)自動(dòng)執(zhí)行。

2、調(diào)用:調(diào)用有兩種方式,通過(guò)對(duì)象直接調(diào)用和通過(guò)self間接調(diào)用

通過(guò)對(duì)象直接調(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)建對(duì)象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

通過(guò)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)建對(duì)象a1,a2
a1=School("zhangsan",18)
a2=School("lisi",18)

#執(zhí)行類中的方法時(shí),通過(guò)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è)方法

在類名后面括號(hào)中寫上另一個(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)建對(duì)象a1
a1=SchoolA("zhangsan")
a1.classroom()
#創(chuàng)建對(duì)象a2
a2=SchoolB("lisi")
a2.classroom()

#執(zhí)行結(jié)果:
#   zhangsan去教室
#   lisi去教室

在上面代碼中我們可以看到,在SchoolA和SchoolB中都沒(méi)有classroom方法,但由于SchoolB繼承了SchoolA,而SchoolA又繼承了School,所以他們創(chuàng)建對(duì)象后都能

調(diào)用School中的classroom方法。

2、多繼承

在python中,類還可以繼承多個(gè)類,在繼承多個(gè)類時(shí),他對(duì)類中的函數(shù)查找有兩種方式

深度優(yōu)先:類是經(jīng)典類時(shí),多繼承情況下,會(huì)按照深度優(yōu)先方式查找

廣度優(yōu)先:類是新式類時(shí),多繼承情況下,會(huì)按照廣度優(yōu)先方式查找

(在python3.x中)都默認(rèn)為廣度優(yōu)先,但還是可以了解一下兩個(gè)的區(qū)別,新式類:當(dāng)前類或者基類繼承了objiect類就叫新式類,否者就是經(jīng)典類。

關(guān)于python面向?qū)ο缶幊痰姆椒ň头窒淼竭@里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文題目:python面向?qū)ο缶幊痰姆椒?/a>
標(biāo)題網(wǎng)址:
http://bm7419.com/article44/pcgche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄全網(wǎng)營(yíng)銷推廣、小程序開(kāi)發(fā)企業(yè)建站、微信小程序、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站