懶懶的Python學習筆記八

2021-08-14 01:41:26 字數 2632 閱讀 1359

物件導向程式設計是最有效的程式設計方法之一,在物件導向程式設計中,你編寫表示現實世界中事物和情景的類,並基於這些類來建立物件。使用類來建立物件被稱為例項化。

使用類可以模擬任何東西。下面的例項編寫乙個表示小狗的的簡單類dog——它表示的布設某個特定的小狗,而是任何小狗,編寫這個類後,我們將使用它來建立表示任何特定的小狗的例項。

根據dog類建立的每個例項都將儲存名字和年齡,我們賦予每條小狗蹲下(sit())和打滾(roll_over())的能力。

這裡有很多地方需要注意,首先使用class關鍵字定義類,在python中首字母大寫的名稱一般是類,其次在類名dog()的括號中包括object,實際上在新版的python 3中括號內不需要新增任何內容。

1、方法__init()__

類中的函式稱為方法。前面所學的任何關於函式的一切都適用於方法,但是在呼叫方法上有所不同。__init()__方法是乙個特殊的方法,每當你使用類建立乙個例項的時候python都會自動執行它。這個方法名稱中,開頭和末尾各有兩個下劃線,這是一種約束,旨在避免python預設方法與普通方法產生衝突。

方法__init()__定義包含三個引數:self、name和age。在這個方法的定義中,形參self是必不可少的,並且必須在其他形參前面。當我們python呼叫__init()__來建立例項的時候會自動傳入self這個引數,self引數是乙個指向例項本身的引用,為的是讓例項訪問類中的屬性和方法。需要注意的是我們在使用類建立例項的時候不需要傳遞self引數,在上個例項中只需要後兩個形參(name和age)。

__init()__方法函式體內定義的變數都有self字首,以self為字首的變數可以供類的所有方法使用。語句self.name=name是將形參中name的值儲存到類的變數name中。像這種可以通過例項訪問的變數稱為屬性。

實際上在類中定義的函式都帶有self這個形參。

2、建立例項

下面我們建立乙個小狗的例項:

要訪問例項的屬性,可使用句點表示法。句點表示法在python中很常見。在這裡python先找到例項my_dog(),再查詢與這個例項相關聯的屬性name。那麼對類中的方法也可以用句點表示法來呼叫。

要呼叫方法的時候,可依次指定例項和要呼叫的方法。

1、建立乙個car類

下面簡單編寫一表示汽車的類,它儲存了有關汽車的資訊。

2、給屬性指定預設值

類的每個屬性都必須有初始值。在某些情況下可以給屬性設定乙個預設值,這樣在例項化的時候就不必為其提供初始值的形參。

我們在__init()__方法中,建立乙個read_odometer的屬性,並將其初始值設定為0,這樣我們在例項化物件的時候就不必為其增加實參了。

3、修改屬性值

修改屬性值的方法大致有兩種,一種是通過例項直接修改;另一種是通過方法修改。

我們可以直接使用句點表示法直接訪問並設定汽車的屬性odometer_reading()並將其設定為100。

通過方法修改

在編寫類時,並非總是要從空白開始,乙個類繼承另乙個類時,它將自動獲得另乙個類的所有屬性和方法:原有的類稱為父類;而新類稱為子類。子類繼承父類的所有方法和屬性,並且還可以有自己的屬性和方法。

建立子類的例項的時候,python首先完成的任務是給父類所有的屬性賦值,這時候子類的方法__init()__需要父類施以援手。

建立子類的時候,父類必須包含在當前檔案中且位於子類之前,定義子類的時候括號內必須指定父類名字。子類的__init()__方法內的super()函式是乙個特殊的函式,幫助python將子類與父類連線起來,這行**讓python呼叫父類的__init()__方法,函式super()接受兩個實參,分別是子類名稱和物件self。在python 3版本中super()函式則不需要引數。

子類除了包含父類的屬性和方法之外,通常還有自己特有的方法和屬性,我們修改以上**

要給子類定義屬性,首先要初始化父類的屬性,在初始化子類的特有屬性

有時候父類的一些方法並不符合子類的需求,這時候需要在子類中對父類的方法進行重寫,為此可以在子類中定義乙個與父類需要重寫的方法同名的方法,這樣python不會考慮父類中的方法而只會關注你在子類中定義的相應的方法。

懶懶的Python學習筆記七

在本章節中將學習編寫函式,所謂函式是帶有名字的完成特定功能的 塊。要執行函式定義的特定任務,可以呼叫該函式,所以在程式中將完成特定功能的部分寫成函式,這樣在多次執行同一任務的時候就無需反覆編寫 了。下面是乙個列印 hello world!的簡單函式 這裡演示了最簡單的函式結構,首先使用def關鍵字來...

懶懶的Python學習筆記十

在程式執行期間遇到錯誤,python會報錯。python使用被稱為 異常的特殊物件來管理程式執行期間發生的錯誤。每當發生乙個錯誤,python會建立乙個異常物件,如果你編寫了處理該異常的 程式將繼續執行,如果你未對異常進行處理,程式將停止並返回乙個trackback,其中包含有關異常的報告。異常通常...

Python學習筆記(八)

二 字串 1 概述 pickle模組為python物件結構的序列化和反序列化實現了乙個基本但強大的演算法。pickling 是將python物件層次結構轉換為位元組流的過程,unpickling 是相反的操作,即位元組流轉換回物件層次結構。2 常用方法 1 序列化為字串 pickle.dumps o...