Python知識分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
【python基礎(chǔ)】類-初識類
發(fā)布于:2023-06-26 15:05:43

1.面向?qū)ο笏枷?/strong>

在認(rèn)識類之前,我們需要理解面向?qū)ο笏枷牒兔嫦蜻^程思想。

面向過程思想:要擁有一間房屋,面向過程像是自己來修蓋房屋,如果需要經(jīng)過選址、購買材料、砌墻、裝修等步驟,面向過程編程,就相當(dāng)于自己個人來負(fù)責(zé)這些事情,需要考慮屋子選在什么地方修建,要哪些材料,怎么砌墻,怎么裝修等。每一步都需要自己來考慮,然后按照步驟一步一步實施。

面向?qū)ο笏枷耄和瑯訐碛幸婚g房屋,但是面向?qū)ο蟾犀F(xiàn)實,類似于專業(yè)的人做專業(yè)的思想,選址、購買材料、砌墻等步驟由開發(fā)商這個對象來完成,作為我們個人自己不需要去考慮這些步驟具體如何實施,對于裝修我們可以交給裝修公司這個對象來完成,我們個人自己也不需要去考慮具體步驟如何實施,我們個人要做的只是去選擇其中某個開發(fā)商修建的某套房屋即可,某個裝修公司的某個裝修方案即可。放在Python編程中,相當(dāng)于開發(fā)商具有提供毛坯房的函數(shù),裝修公司有裝修方案的函數(shù),我們需要屋子的時候,直接可以去調(diào)用開發(fā)商的毛坯房函數(shù)、需要裝修就去調(diào)用裝修公司的裝修方案函數(shù)。

所以面向?qū)ο笏枷氲木幊谭绞?,更符合現(xiàn)實世界鐘的事物和情景,面向過程的思想略顯復(fù)雜,需要考慮過程中的每一步

2.創(chuàng)建類

在面向?qū)ο缶幊讨?,編寫表示現(xiàn)實世界中的事物和情景,我們需要用到類,由類創(chuàng)建對象。類的話類似于上面例子中的開發(fā)商的共性信息集合,對象的話類似于就是具體到某個開發(fā)商的具體信息集合。使用面向?qū)ο缶幊炭筛颖普娴哪M現(xiàn)實情景。

使用類幾乎可以模擬任何東西。下面我們就編寫一個表示人的簡單類,類的話表示的不是特定的人,而是任何一個人,里面編寫的都是人的共性信息集合。

其語法格式:

【python基礎(chǔ)】類-初識類 圖1

 

我們新建一個people的.py文件,并編寫程序如下所示:

【python基礎(chǔ)】類-初識類 圖2

通過上面的程序編寫我們發(fā)現(xiàn)有以下幾點:

1.有四個def關(guān)鍵字代表的函數(shù),在類中的函數(shù)我們稱為類的方法,前面學(xué)到的有關(guān)函數(shù)的一切都適用于方法,我們定義了初始化方法__init__、吃飯方法eat、睡覺方法sleep、學(xué)習(xí)方法study,雖然只是輸出了一條語句,但是我們可以根據(jù)需求,繼續(xù)擴展,這里只是舉下例子。

2.init方法,是類的初始化方法,這個一個特殊的方法,每當(dāng)根據(jù)人的類去創(chuàng)建人的實例時,Python都會自動運行它。在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免Python默認(rèn)方法與普通方法發(fā)生名稱沖突。

3.__init__方法聲明時有兩個形參變量,self和name。其中self是必不可少的,還必須位于其他形參變量的前面。因為Python調(diào)用__init__方法來創(chuàng)建人的類所對應(yīng)的人的實例時,將自動傳入實參self。所以我們在向People這個類的實例對象傳遞實參變量數(shù)據(jù)時,只需傳遞name,self會自動傳遞,我們不需要手動傳遞它

4.每個與類相關(guān)聯(lián)的方法調(diào)用都自動傳遞實參變量self,它是指向?qū)嵗旧淼囊?,讓實例能夠訪問類中的屬性和方法,屬性在這里就相當(dāng)于name。

5.self.name = name這條語句,以self為前綴的變量都可供類中的所有方法使用,我們還可以通過類的任何實例來訪問這些變量。這些變量叫做類的屬性

3.創(chuàng)建實例

實例是類的對象,可將類視為有關(guān)如何創(chuàng)建實例的說明。People類是實例人的一系列說明,讓Python知道如何創(chuàng)建表示特定人的實例。

其語法格式:

變量名 = 類名(實參變量1,實參變量2,,,,,實參變量n)

編寫程序如下所示:

【python基礎(chǔ)】類-初識類 圖3

我們看到輸出結(jié)果是一個People object說明這是一個People的對象

如果想輸出people這個示例的屬性信息,可以在People類編寫一個__str__方法,我們在利用print函數(shù)對people輸出時,people會自動調(diào)用__str__方法,無需我們顯式調(diào)用,這個其實是重寫父類的方法,后期會有所介紹。

編寫程序如下所示:

【python基礎(chǔ)】類-初識類 圖4

這里需要注意的是方法__init__方法并未顯式地包含return語句,但Python自動返回一個表示人的實例,我們將這個實例存儲在變量people中。

4.訪問類屬性

要訪問實例的屬性,可使用句點表示法。

其語法格式:

實例變量名.類屬性名

編寫程序如下所示:

【python基礎(chǔ)】類-初識類 圖5

句點表示法在Python中很常用,這種語法演示了Python如何獲悉屬性的值。在這里Python先找到實例people,再查找與這個實例相關(guān)聯(lián)的屬性name,因為加self前綴的變量,就是與實例相關(guān)聯(lián)的變量,這里找的就是self.name,因為此時self.name的值為'張三',所以輸出結(jié)果即為'張三'

5.調(diào)用類方法

句點表示法不僅可以用來訪問類屬性,也可用來訪問類方法。

其語法格式:

實例變量名.類方法

編寫程序如下所示:

【python基礎(chǔ)】類-初識類 圖6

6.創(chuàng)建多個實例

我們創(chuàng)建多個人的實例,輸出他們的名字并且輸出他們正在干什么

編寫程序如下所示:

【python基礎(chǔ)】類-初識類 圖7

每個人都是獨立的一個實例,有自己的一組屬性,能夠執(zhí)行相同的操作。我們可以根據(jù)一個類創(chuàng)建任意數(shù)量的實例。

轉(zhuǎn)載自:https://www.cnblogs.com/lbprogram/p/17493861.html