類的總複習

2022-06-10 16:15:08 字數 2698 閱讀 9123

目錄類指的是一系列物件相同的特徵與技能的結合體

先抽象,抽取物件之間相同的特徵與技能

再定義,

1.會產生乙個類的命名空間

2.會把類內部的多有名字,扔進該命名空間內

注意:定義類時,就會執行類內部的**,若語法不正確,則會報錯

呼叫類會產生乙個物件,呼叫類的過程稱之為類的例項化,物件稱之為類的乙個例項

1.呼叫類時會產生乙個物件的命名空間

2.會觸發__init__,接著把物件與括號內所有的引數都傳給__init__(),物件當作第乙個引數

3.在__init__內部沒有,可以給物件新增屬性

1先找物件自己有沒有,

2.沒有就去類中找

3.若此類是子類,會去父類中查詢。

類來呼叫,類內部的方法只是普通的函式,函式需要幾個引數,就傳入幾個引數。

由物件由來呼叫,會自動把物件當作第乙個引數傳入該方法。

注意:不同物件的物件呼叫該繫結方法,會將不同的物件傳入該繫結方法中

在python中,一切皆物件

python八大資料型別

list, tuple, set, dict, float, int, bool, str

內建函式:filter

繼承指的是新建類的方式,新建的類指的是子類或派生類,子類可以繼承乙個父類,父類又可以稱之為基類或超類

必須 」先抽象,再繼承「

抽象:抽取相似的部分

—先抽象:抽取類與類之間相同的特徵與技能

—再繼承:確定好子類與父類,定義父類,父類中寫類與類之間相同的特徵與技能,子類繼承父類的屬性

類是物件與物件之間的關係,類是一系列物件相同的特徵與技能的結合體

繼承是類與類之間的關係,子類與父類是一種從屬關係

派生指的是子類繼承父類的屬性,並派生出自己的屬性

子類可以派生出自己的屬性,並重用父類的屬性

1.__init__直接呼叫類,類名.屬性的方式衝重用父類的屬性

2.super(),super().指向父類的命名空間,重用父類的屬性

注意:子類派生出與父類相同的屬性,以子類為主

1.先在物件中查詢

2.物件中沒有,在類中查詢

3.類中沒有,若類為子類,會在父類中查詢

4.物件查詢屬性,若子類有,不管父類有沒有,以子類為準

新式類:繼承object的類

經典類:在python2中沒有繼承object的類

新式類:廣度優先

經典類:深度優先

組合指的是乙個物件的屬性是另乙個物件

組合的作用:與繼承一樣,解決**冗餘問問題

繼承的優點:編寫的複雜程度沒有組合高

繼承的缺點:耦合度太高,可擴充套件性差

組合的優點:可以讓類與類之間耦合,可擴充套件性高

組合的缺點:編寫複雜程度高於繼承

封裝指的是把一堆屬性,封裝到物件中,物件就好比乙個袋子,或乙個容器

優點:方便資料的訪問,可以通過 物件.屬性 的方法獲取資料

封裝是物件導向的核心

在類內部,凡是以__開頭的屬性,都會被隱藏,實際是變形成為 __類名__ 屬性

python的內建的裝飾器,主要給類內部的方法使用,使用他的目的是將類內部的方法(def方法名)變成了(def方法)

注意:不能對被裝飾過的方法屬性修改

同一種事物的多種形態

多型的目的:是為了統一**的編寫規範

多型的實現方式:

繼承:子類繼承父類的特徵

抽象類:

1.匯入乙個abc模組

2.讓父類繼承乙個(metaclass=abc.abcmeta)

3.給類內部所有方法加上乙個@abc.abstractmethod

子類繼承抽象類,強制讓子類繼承父類的方法,缺一不可

鴨子型別:

只要你長得像鴨子,並且行為與鴨子一摸一樣,呢麼你就是鴨子

同一種事物的類,都有相同的功能,該這些類都在內部定義相同名稱的方法

是乙個方法,用來裝飾在類內部的方法,可以讓該方法變成類的繫結方法

物件的繫結方法:由物件來呼叫,會將物件當作第乙個引數傳入該方法,不同的物件呼叫該方法,則會將不同的物件傳入到該繫結方法中

類的繫結方法:由類來呼叫,會將類當作第乙個引數傳入該方法。

是乙個裝飾器,可以裝飾類內部的方法,使該方法既不繫結給物件,也不繫結給類,誰都可以呼叫,並且沒有自動傳值的效果

簡而言之,非繫結方法就是將普通方法放到類中使用

isinstance

判斷乙個物件是不是另乙個類的例項

issubclass

判斷乙個類是不是另乙個類的子類

反射反射:通過字串操作物件或類的屬性

hasattr:通過字串,判斷字串是否是乙個物件或類的屬性

getattr:通過字串,獲取物件的屬性

setattr:通過字串,設定物件的屬性

delattr:通過字串刪除乙個物件或類的屬性

魔法方法

__new__   會在__init__執行前觸發

__init__ 會在類被呼叫的時候觸發

__str__ 會在列印的時候觸發

__getattr__ 會在物件.屬性時,屬性沒有的時候觸發

__setattr__ 會在 物件.屬性 = 屬性值 的時候觸發

__del__ 會在物件被登出前執行,該方法會在最後執行

__call__ 會在物件被呼叫的時候觸發

總複習小結

總複習小結 1 經過一學期的程式設計學習,初步認識基礎資料型別,語句結構,可以做一些簡單的程式設計。此次複習總結了一部分的函式 程式設計技巧及易錯知識點。2 符號常量,定義後不再被賦值,習慣上用大寫字母。例 define pi 3.14 const double pi 3.1415 定義最大值 de...

總複習測試(二)

解析 read 是讀取字元!readline 是讀取字串 解析 此題考的是directory和directoryinfo的區別,directory類的方法都是靜態的,可以直接呼叫,directoryinfo類的方法不是靜態的,所以要通過例項化呼叫 directory包含exist 方法,direct...

C 總複習 型別轉換

1.常見型別轉換 int i double d 2.5 i 1.5 隱式型別轉換 i int 1.5 顯式型別轉換 i d 隱式型別轉換 i int d 顯式型別轉換 一般情況下,int 型轉換為int型是非常不可思議的 即非常危險的 編譯器不允許隱式型別轉換的發生,報出錯誤。如果一定要完成這種不能...