溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python入門進(jìn)階教程-面向?qū)ο?/h1>
發(fā)布時間:2020-06-13 20:33:09 來源:網(wǎng)絡(luò) 閱讀:121 作者:樂趣碼農(nóng) 欄目:編程語言

Python入門進(jìn)階教程-面向?qū)ο?><br/><strong>面向?qū)ο缶幊蹋∣bject Oriented Programming,OOP),是使用對象(Objects)作為核心的編程方式。<br/>進(jìn)而就可以把對象(Objects)的數(shù)據(jù)和運(yùn)算過程封裝(Encapsulate)在內(nèi)部,而外部僅能根據(jù)事先設(shè)計好的界面(Interface)與之溝通。</strong></p>
<p><strong>對象的構(gòu)成:</strong></p>
<p>屬性 —— 用自然語言描述,通常是名詞(Nouns)<br/>方法 —— 用自然語言描述,通常是動詞(Verbs)<br/>舉個例子:創(chuàng)建一個對象Teacher(老師)</p>
<p>Teacher的屬性有name(姓名)、age(年齡)等,Teacher 的方法有teacher(上課)、study(學(xué)習(xí))</p>
<p>EnglishTeacher(英語老師)也屬于Teacher,所以EnglishTeacher可以繼承Teacher并且使用Teacher的屬性和方法</p>
<p>MathTeacher(數(shù)學(xué)老師)的teach方法不同于EnglishTeacher,所以可以對方法進(jìn)行重寫。</p>
<p><strong>類的私有屬性</strong></p>
<p>private_attrs:兩個下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內(nèi)部的方法中使用時 self.private_attrs。</p>
<p><strong>類的方法</strong></p>
<p>在類的內(nèi)部,使用 def關(guān)鍵字來定義一個方法,與一般函數(shù)定義不同,類方法必須包含參數(shù) self,且為第一個參數(shù),self 代表的是類的實例。</p>
<p>self 的名字并不是規(guī)定死的,也可以使用 this,但是最好還是按照約定用 self。</p>
<p><strong>類的私有方法</strong></p>
<p>private_method:兩個下劃線開頭,聲明該方法為私有方法,只能在類的內(nèi)部調(diào)用 ,不能在類的外部調(diào)用。在類內(nèi)部調(diào)用self.private_methods。</p>
<p><strong>Python 類定義</strong></p>
<p>Class 使用 class 關(guān)鍵字進(jìn)行定義。class name使用駝峰標(biāo)識,例如MyClass:</p>
<pre><code># 定義類
class Teacher:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def teach(self):
        print(

注:
self 用來指代將來用這個 Class 創(chuàng)建的 Instance實例。
init() 函數(shù)是系統(tǒng)創(chuàng)建實例后被初始化的函數(shù)。這個函數(shù)名稱是強(qiáng)制指定的,初始化函數(shù)必須使用這個名稱;注意 init 兩端各有兩個下劃線 _。
self.name,self.age 各接收了一個參數(shù),表示用戶屬性
Python 類繼承

繼承,顧名思義,新的事物擁有舊事物的特征,并且可以傳遞下去。

在Python中,繼承的范圍更廣,比如定義一個實例Teacher,則新的實例EnglishTeacher是老師,所以可以繼承Teacher。老師有姓名、年齡、性別等屬性,有上課、學(xué)習(xí)等方法,則英語老師繼承老師的所有屬性和方法。

再比如,定義一個實例Mother母親,定義一個實例Father父親,則新的實例Kids孩子不但可以繼承Mother還可以繼承Father。

以上兩個例子分別是單繼承和多繼承。

Python可以實現(xiàn)單繼承和多繼承

單繼承

# # EnglishTeacher繼承Teacher類
class EnglishTeacher(Teacher):
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    def teach(self):
        print("{0} teach".format(self.name))

# 創(chuàng)建類的實例
teacher  = EnglishTeacher("xiaomeng", 10)
teacher.teach()

# 輸出
xiaomeng teach

多繼承

# 定義父親類
class Father:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def speak(self):
        print("{0} is father".format(self.name))

# 定義母親類
class Mother:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def speak(self):
        print("{0} is mother".format(self.name))

# Kid繼承Father和Mother類
class Kid(Father, Mother):
    def speak(self):
        print("{0} is kid".format(self.name))

# 創(chuàng)建類的實例
kid = Kid("student", 6)
kid.speak()

# 輸出
baby is kid

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI