python 第五部分 物件導向 學習筆記

2021-10-23 07:29:01 字數 2690 閱讀 3195

一、物件導向

將程式設計當成乙個事物,對外界來說,事物是直接使用的,不用去管他內部的情況,而程式設計就是設定事物能夠做什麼事。

1.類和物件

關係:用類去建立乙個物件

類:是對一系列具有相同特徵和行為的事物的統稱,是乙個抽象的概念,不是真實存在的事物

> 特徵即是屬性

> 行為即是方法

物件:是類建立出來的真實存在的事物

2.定義類

語法:新式類

class 類名():

**注:類名要滿足識別符號命名規則,遵循大駝峰命名規則

語法:經典類(不由任何內建型別派生出的類)

class 類名:

**3.建立物件:例項化的過程

語法:物件名=類名()

4.self指的是呼叫該函式的物件

5.類外面新增物件屬性

語法:物件名.屬性名 = 值

6.類外面獲取物件屬性

語法:物件名.屬性名

7.類裡面獲取物件屬性

語法:self.屬性名

二、魔法方法(_xx_(

)):指具有特殊功能的函式

1.__init__(

):初始化物件,在建立乙個物件時預設被呼叫,不需要手動呼叫

__init__(self)中的self不需要開發者傳遞,python直譯器會自動把當前的物件引用傳遞過去

2.帶引數的__init__(

):__init__(self,width,height)

3.__str__(

):當使用print輸出物件的時候,預設列印物件的記憶體位址。若類定義了__str__(

)方法,就會列印從這個方法中return的資料。

4.__del__(

):刪除物件時,直譯器會預設呼叫__del__(

)方法三、物件導向——繼承

1.繼承:指的是多個類之間的所屬關係,即子類預設繼承父類的所有屬性和方法

注:所有類預設繼承object類,object類是頂級類和基類,其他子類叫做派生類

2.單繼承:乙個類只繼承乙個父類

3.多繼承:乙個類同時繼承了多個父類

4.子類重寫父類同名方法和屬性

注:子類和父類具有同名屬性和方法,預設使用子類的同名屬性和方法

5.子類呼叫父類的同名方法和屬性

6.多層繼承7.

super()呼叫父類方法

注:使用super()可以自動查詢父類,呼叫順序遵循__mro__類屬性的順序,比較適合單繼承使用

四、私有許可權

1.定義私有屬性和方法:在屬性和方法名前面加上兩個下劃線

注:私有屬性和私有方法只能在類裡面訪問和修改

2.獲取和修改私有屬性

定義函式名get_xx用來獲取私有屬性

定義set_xx用來修改私有屬性值

五、物件導向三大特性:封裝、繼承、多型

1.多型:一類事物有多種形態(乙個抽象類有多個子類,因而多型的概念依賴於繼承),是一種使用物件的方式,子類重寫父類方法,呼叫不同子類物件的相同父類方法,可以產生不同的執行結果。

2.類屬性:類物件所擁有的屬性,它被該類的所有例項物件所共有,可以使用類物件和例項物件訪問。

修改類屬性:類屬性只能通過類物件修改,不能通過例項物件修改。若通過例項物件修改屬性,表示的是建立了乙個例項屬性。

3.類方法:需要用裝飾器@classmethod來識別其為類方法,第乙個引數必須是類物件,一般以cls作為第乙個引數。

4.靜態方法:需要通過裝飾器@staticmethod來修飾,不需要傳遞類物件好人例項物件,能通過例項物件和類物件訪問。

使用場景:方法中不需要例項物件和類物件時,取消不需要引數傳遞,有利於減少不必要的記憶體占用和效能消耗。

六、模組和包

1.匯入模組

import 模組名

from 模組名 import 功能名

from 模組名 import

*import 模組名 as 別名

from 模組名 import 功能名 as 別名

2.製作模組

3.__all__:乙個模組檔案中有__all__變數,使用from 模組名 import

*匯入時,只能匯入這個列表中的元素。4.包

匯入包:

import 包名.模組名

包名.模組名.目標

from 包名 import

*模組名.目標

注:在__int__.py檔案中新增__all__=

,控制允許匯入的模組列表

七、異常

異常語法:

try:

可能發生錯誤的**

except

: 如果出現異常執行的**

else

: 沒有異常執行的**

finally

: 無論是否異常都有執行的**

捕獲異常

except 異常型別:

**except 異常型別 as xx:

**

自定義異常

#1.自定義異常類

class 異常類類名(exception):

**#設定丟擲異常的描述資訊

def__str__

(self)

:return..

.#2.丟擲異常

raise 異常類名()

#捕獲異常

except exception.

..

Python學習手冊(第五部分 模組)

注意 匯入只發生一次!如果需要乙個模組的 通過某種匯入後再一次執行,需要使用內建函式reload來實現。最好使用import直接匯入模組,使用from import 語句匯入的變數名可能會有問題。import匯入模組包的語句中的目錄路徑只能是以點號間隔的變數。相對匯入與絕對匯入 絕對匯入的格式為 i...

譯 Reduce(軟體編寫)(第五部分)

本文講的是 譯 reduce 軟體編寫 第五部分 array.reduce reducer accumulator any,current any any,initialvalue any accumulator any 2,4,6 reduce acc,n acc n,0 12const summ...

Job 儲存和持久化 第五部分

十.使用資料庫儲存 scheduler 資訊 載入 job 到資料庫中 在前面有一節,使用記憶體儲存 scheduler 資訊 我們談到關於在使用 ramjobstore 時如何載入 job 和 trigger 資訊到記憶體中。那麼 job 和 trigger 又是如何載入到資料庫中的呢?存在以下幾...