python-N02:面向?qū)ο?

一 繼承

  • 讓類與類之間產(chǎn)生關(guān)系
  • 提高代碼的復(fù)用性
class Animal:

       # def sleep(self):
              
            #  print('動物睡覺')
        
       # def run(self):

                #print('動物跑')
class Dog(Animal):

         def sleep(self):
              
              print('狗睡覺')
        
        def run(self):

                print('狗跑')

dog = Dog()
dog.run()
dog.sleep()
>>>
動物跑
動物睡覺

#定義狗類
#1,在動物上面修改,添加狗類的獨(dú)有功能但這樣修改違反ocp原則。
#2,直接從animal中繼承他的屬性和方法。
# 在定義類的時候,可以在類名后面的括號里面指定當(dāng)前的父類
r = isdubclass(Dog, Animal)
>>>
Ture

二 方法的重寫

先執(zhí)行子類的函數(shù) 若子類無函數(shù)便執(zhí)行父類函數(shù),這個特點稱之為方法的重寫。

   # def sleep(self):
              
            #  print('動物睡覺')
        
       # def run(self):

                #print('動物跑')

三 . super()

? super()可以獲取當(dāng)前類的父類
? 并且通過super()返回對象調(diào)用父類方法時,不需要傳遞self

四 多重繼承

? 在Python中是支持多重繼承的。也就是我們可以為一個類同時制定多個父類
? 可以在類名的()后邊添加多個類,來實現(xiàn)多重繼承
? 多重繼承,會使子類同時擁有多個父類,并且會獲取到所有父類中的方法
? 在開發(fā)中沒有特殊情況,應(yīng)該盡量避免使用多重繼承。因為多重繼承會讓我們的代碼更加復(fù)雜
? 如果多個父類中有同名的方法,則會先在第一個父類中尋找,然后找第二個,找第三個...前面會覆蓋后面的

五 多態(tài)

? 多態(tài)是面向?qū)ο蟮娜筇匦灾?。從字面理解就是多種形態(tài)
? 一個對象可以以不同形態(tài)去呈現(xiàn)
? 面向?qū)ο笕筇匦?br> ? 封裝 確保對象中數(shù)據(jù)的安全
? 繼承 保證了對象的擴(kuò)展性
? 多態(tài) 保證了程序的靈活性

六 屬性和方法

? 屬性
? 類屬性,直接在類中定義的屬性是類屬性
? 類屬性可以通過類或類的實例訪問到。但是類屬性只能通過類對象來修改,無法通過實例對象修改
? 實例屬性 通過實例對象添加的屬性屬于實例屬性
? 實例屬性只能通過實例對象來訪問和修改,類對象無法訪問修改
? 方法
? 在類中定義,以self為第一個參數(shù)的方法都是實例方法
? 實例方法在調(diào)用時,Python會將調(diào)用對象以self傳入
? 實例方法可以通過類實例和類去調(diào)用
? 當(dāng)通過實例調(diào)用時,會自動將當(dāng)前調(diào)用對象作為self傳入
? 當(dāng)通過類調(diào)用時,不會自動傳遞self,我們必須手動傳遞self
? 類方法 在類的內(nèi)容以@classmethod 來修飾的方法屬性類方法
? 類方法第一個參數(shù)是cls 也會自動被傳遞。cls就是當(dāng)前的類對象
? 類方法和實例方法的區(qū)別,實例方法的第一個參數(shù)是self,類方法的第一個參數(shù)是cls
? 類方法可以通過類去調(diào)用,也可以通過實例調(diào)用
? 靜態(tài)方法
? 在類中用@staticmethod來修飾的方法屬于靜態(tài)方法
? 靜態(tài)方法不需要指定任何的默認(rèn)參數(shù),靜態(tài)方法可以通過類和實例調(diào)用
? 靜態(tài)方法,基本上是一個和當(dāng)前類無關(guān)的方法,它只是一個保存到當(dāng)前類中的函數(shù)
? 靜態(tài)方法一般都是些工具方法,和當(dāng)前類無關(guān)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容