python方法及物件導向

2021-10-06 13:15:55 字數 2042 閱讀 4055

今天我們來學習下如何自定義方法,以及編寫python類檔案,在公司中我們不可能乙個python檔案幾千幾萬行**,不利於**的維護及排查問題的及時性,而物件導向則是解決了這一問題!

def(方法的定義)

在python中,我們使用def這個關鍵字進行自定義方法,可以供其他方法,其他類的呼叫,而不需要再寫一次這個方法的內容了。

以上我們可以看到乙個簡單的方法定義,方法後面必須要加』()』。上面這個方法的主要內容就是列印乙個字串,如果我們需要乙個方法裡面的某個值傳給呼叫他的**,那麼我們可以使用return進行返回:

執行以上**,我們可以看到控制台並未任何輸出,因為我們需要對這個方法賦值給某個變數,可以通過列印print看到,方法返回的內容。

接下來我們可以看乙個例項:

上述中的e就是test()方法返回的值,所以e的值就為a+b=3。

剛才所說,方法後面都是需要加括號,那麼這個括號裡面是否可以傳值呢,答案肯定是可以的!

我們可以看到方法括號裡傳了值(形參:形式上的引數),那麼我們在呼叫這個方法的時候,括號裡面就需要傳引數,否則將會報錯,缺少引數。

方法括號內還可以傳不定長引數,就是不明確具體傳的引數個數,根據實際呼叫情況進行傳參:

我們可以看到不定長參傳參的方式*args,是以tuple元組的形式進行傳參,還可以使用**args,我們也可以檢視到,引數是以dict字典的形式進行的傳參!

class(物件導向)

class就是代表著乙個類,什麼是類,你可以把它理解為乙個家庭,家庭裡面包含了方法,不同型別的方法則是不同的家庭成員,但是對外又是乙個家庭的,只有乙個戶口本,類和家庭一樣可以繼承,爺爺生爸爸,爸爸生了你,分別最後又組成了新的家庭。

上面我們可以看到,定義了乙個類,這個類,裡面包含了eat(),drink(),sleep()等方法,對類進行乙個例項,然後通過例項去呼叫這個類裡面的方法。

類有乙個名為init() 的特殊方法(構造方法),該方法在類例項化時會自動呼叫,像下面這樣:

我們可以看到init方法中的name,在前面加了self之後,可以直接被其他方法所呼叫,那麼這個self是什麼呢,實際就是類裡面的內部的例項,不需要氮素對類進行例項,直接加self之後,就可以傳給其他的方法。

類的繼承

所謂類的繼承就類似於家族中的基因遺傳,父類的一些方法及元素,可以供子類使用

我們可以看到下面的子類繼承了上面的父類,不但可以呼叫自身的方法,同樣可以呼叫父類中的方法。子類還可以繼承父類的子類:

我們可以看到tiger繼承了animal,然後ele則又繼承了tiger,那麼類ele則可以使用上面兩個類中的所有方法。

類中的方法也存在集中不同的形態,靜態類方法,類方法,屬性等形式!

我們可以看到不同型別的方法呼叫的方式也存在區別,同學們可以根據自身的需求去編寫不同的類形式!

Python物件導向 方法

方法名稱 樣式可被誰呼叫 可呼叫誰 用處類方法 方法的第乙個引數是類 類 例項 類變數修改類屬性 靜態方法 方法不需要任何固定的引數 類 例項 自身的變數 只能做內部的處理 類中函式 就是在類裡面寫了個函式 不可外部呼叫 自身的變數 內部私有化部分 例項方法 就是有self接收例項的這種方法 cla...

Python物件導向之方法

任務 給定一段 請修改其中部分 使 可以成功執行。請在下面的begin end之間按照注釋中給出的提示編寫正確的 begin class kls def init self,data self.data data staticmethod defcheckind return ind on defd...

Python物件導向特殊屬性及方法解析

更多程式設計教程請到 菜鳥教程 高州陽光論壇 特殊屬性 python中物件包括很多雙下劃線開始和結束的屬性,這些特殊屬性,有特殊用法。特殊方法 含義obj.dict 物件的屬性字典 obj.class 物件所處的類 class.bases 類的基本元組 多繼承 class.base 類的基類 cla...