1.面向物件思想
在認識類之前,我們需要理解面向物件思想和面向程序思想,
面向程序思想:要擁有一間房屋,面向程序像是自己來修蓋房屋,如果需要經過選址、購買材料、砌墻、裝修等步驟,面向程序編程,就相當于自己個人來負責這些事情,需要考慮屋子選在什么地方修建,要哪些材料,怎么砌墻,怎么裝修等,每一步都需要自己來考慮,然后按照步驟一步一步實施,
面向物件思想:同樣擁有一間房屋,但是面向物件更符合現實,類似于專業的人做專業的思想,選址、購買材料、砌墻等步驟由開發商這個物件來完成,作為我們個人自己不需要去考慮這些步驟具體如何實施,對于裝修我們可以交給裝修公司這個物件來完成,我們個人自己也不需要去考慮具體步驟如何實施,我們個人要做的只是去選擇其中某個開發商修建的某套房屋即可,某個裝修公司的某個裝修方案即可,放在Python編程中,相當于開發商具有提供毛坯房的函式,裝修公司有裝修方案的函式,我們需要屋子的時候,直接可以去呼叫開發商的毛坯房函式、需要裝修就去呼叫裝修公司的裝修方案函式,
所以面向物件思想的編程方式,更符合現實世界鐘的事物和情景,面向程序的思想略顯復雜,需要考慮程序中的每一步
2.創建類
在面向物件編程中,撰寫表示現實世界中的事物和情景,我們需要用到類,由類創建物件,類的話類似于上面例子中的開發商的共性資訊集合,物件的話類似于就是具體到某個開發商的具體資訊集合,使用面向物件編程可更加逼真的模擬現實情景,
使用類幾乎可以模擬任何東西,下面我們就撰寫一個表示人的簡單類,類的話表示的不是特定的人,而是任何一個人,里面撰寫的都是人的共性資訊集合,
其語法格式:

我們新建一個people的.py檔案,并撰寫程式如下所示:

通過上面的程式撰寫我們發現有以下幾點:
1.有四個def關鍵字代表的函式,在類中的函式我們稱為類的方法,前面學到的有關函式的一切都適用于方法,我們定義了初始化方法__init__、吃飯方法eat、睡覺方法sleep、學習方法study,雖然只是輸出了一條陳述句,但是我們可以根據需求,繼續擴展,這里只是舉下例子,
2.init方法,是類的初始化方法,這個一個特殊的方法,每當根據人的類去創建人的實體時,Python都會自動運行它,在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免Python默認方法與普通方法發生名稱沖突,
3.__init__方法宣告時有兩個形參變數,self和name,其中self是必不可少的,還必須位于其他形參變數的前面,因為Python呼叫__init__方法來創建人的類所對應的人的實體時,將自動傳入實參self,所以我們在向People這個類的實體物件傳遞實參變數資料時,只需傳遞name,self會自動傳遞,我們不需要手動傳遞它
4.每個與類相關聯的方法呼叫都自動傳遞實參變數self,它是指向實體本身的參考,讓實體能夠訪問類中的屬性和方法,屬性在這里就相當于name,
5.self.name = name這條陳述句,以self為前綴的變數都可供類中的所有方法使用,我們還可以通過類的任何實體來訪問這些變數,這些變數叫做類的屬性
3.創建實體
實體是類的物件,可將類視為有關如何創建實體的說明,People類是實體人的一系列說明,讓Python知道如何創建表示特定人的實體,
其語法格式:
變數名 = 類名(實參變數1,實參變數2,,,,,實參變數n)
撰寫程式如下所示:

我們看到輸出結果是一個People object說明這是一個People的物件
如果想輸出people這個示例的屬性資訊,可以在People類撰寫一個__str__方法,這個其實是重寫父類方法,后期會有所介紹,
撰寫程式如下所示:

這里需要注意的是方法__init__方法并未顯式地包含return陳述句,但Python自動回傳一個表示人的實體,我們將這個實體存盤在變數people中,
4.訪問類屬性
要訪問實體的屬性,可使用句點表示法,
其語法格式:
實體變數名.類屬性名
撰寫程式如下所示:

句點表示法在Python中很常用,這種語法演示了Python如何獲悉屬性的值,在這里Python先找到實體people,再查找與這個實體相關聯的屬性name,因為加self前綴的變數,就是與實體相關聯的變數,這里找的就是self.name,因為此時self.name的值為'張三',所以輸出結果即為'張三'
5.呼叫類方法
句點表示法不僅可以用來訪問類屬性,也可用來訪問類方法,
其語法格式:
實體變數名.類方法
撰寫程式如下所示:

6.創建多個實體
我們創建多個人的實體,輸出他們的名字并且輸出他們正在干什么
撰寫程式如下所示:

每個人都是獨立的一個實體,有自己的一組屬性,能夠執行相同的操作,我們可以根據一個類創建任意數量的實體,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/555665.html
標籤:其他
上一篇:Inno Setup 結合exe4j打包 Java 程式為 EXE 檔案
下一篇:返回列表
