python基礎18 ---多態與綁定方法
一、抽象類
1、抽象類的定義:從一堆類中抽象出相同的內容,重新組成一個新的類,這樣的類屬於抽象類。
2、香蕉類是一類水果,蘋果類是一類水果,葡萄類是一類水果,但是他們都屬於水果,從他們這些類中可以抽象出相同的部分都是屬於水果類,這個水果類就屬於抽象類。但是你永遠無法吃到一個叫水果的對象,所以抽象類是不能被實例化的,他只能被別的類所繼承,並且子類必須實現抽象方法。
3、該抽象類主要和abc模塊結合使用。(之前將的讀和寫)
4、抽象類的本質還是類,指的是一組類的相似處,包括數據屬性和函數屬性,而接口只強調函數屬性的相似度。二、多態
1、什麽是多態?
多態指的是一類事物的多種形態,一個抽象類有多個子類,因而多態的概念依賴於繼承。(水是個抽象類,他可以有水蒸氣,泉水,冰等多種形態。)
2、序列類型有多種形態,分別是字符串,列表,元組,因此他們都遵循這個序列類型抽象類的使用方法,可以通過索引取值可以分片等。
三、多態性
1、什麽是多態性?
多態性是指具有不同功能的函數或對象可以使用相同的函數名,這樣就可以使用相同的函數名來調用不同功能的函數了。如圖所示:
2、多態性分為靜態多態性和動態多態性兩種。
靜態多態性:任何序列類型的數據都可以通過+來運算
動態多態性:如圖一所示
3、多態性是指就是一個函數實現不同函數或對象的功能。
4、多態性的好處?
4.1增長了程序的靈活性,以不變應萬變,無論對象怎麽變化我們都可以以同一形式去調用它。
4.2增長了程序的可擴展性,使用者可以創建一個新的對象,但是調用的方式卻不會發生變化。四、綁定方法與非綁定方法
1、類中定義的函數分為兩大類,一種是有綁定方法的函數,一種是沒有綁定方法的函數。
2、有綁定方法的函數
2.1綁定到對象的方法:類中定義的函數屬性默認都是綁定到對象上的,綁定給誰,被綁定者來調用就自動將他本身當作
第一個參數傳進去。
2.2綁定到類的方法:在類中用classmethod裝飾器裝飾的函數都是綁定到類上的。不管是類調用還是對象調用都會自動將類
當作第一個參數,自動傳入。
3、非綁定方法的函數。
類中的函數用staticmethod裝飾器裝飾的函數都是麽有被綁定的。對象和類都可以調用它,但是不會自動傳值。
4、eg:
python基礎18 ---多態與綁定方法