Python筆記_第三篇_面向對象_2.第一個Python類
1. 設計一個類:
設計一個類主要從三個方面進行考慮:
第一:類名:類名要見名知意。首字母大寫。
第二:屬性。
第三:方法。
備註:在Python中有些東西並不是絕對化的事情,有些根據Python社區裏面有些約定俗稱的規定,在Python這種動態語言當中隨處可見,比如像__、_單雙下劃線的使用就是這個問題的一個體現。
2. 創建一個類:
類:一種數據類型,本身並不占內存空間,根據所學過的number、string、boolean等類似,用類創建實例化對象。
格式:
class 類名(父類列表):
屬性
方法
備註:Object:是一個基類,也可以叫做超類,所有類的父親,後面說道繼承的時候回詳細說明,所有的類最終都會繼承自object,一般沒有合適的父類就寫Object,或者不寫也可以。
class Person(object): # 定義屬性(定義變量) name = "" age = 0 height = 0 weight = 0 # 定義方法(定義函數) # 註意:方法的參數必須以self當第一個參數,self代表類的實例(某個對象) def run(self): print("run") def eat(self,food): print("eat " + food) def openDoor(self): print("我已經打開了冰箱門") def fillEle(self): print("我已經把大象裝進冰箱了") def closeDoor(self): print("我已經關閉了冰箱門")
3. 使用一個類:
使用一個類的過程也叫實例化一個類。
格式:對象名 = 類名(參數列表) ---- 如果沒有參數列表括號也不能省略
註意:沒有參數,小括號也不能省略(在C#這種面相對象的語言中要用new 類名的方法去實例化一個類,在Python這種語言中不需要,另外,其他面相對象語言有靜態類和動態類這麽一說,Python應該都是動態類,因為靜態類不需要實例化)
舉例說明:
# 實例一個對象 per1 = Person() print(per1) # 返回值:<__main__.Person object at 0x000002A85E0A1080> # __mian__表示入口 # at 0x000002A85E0A1080 表示內存地址 per2 = Person() print(per2) # 返回值:<__main__.Person object at 0x0000025F9B1611D0> # 我們發現內存地址不一樣,他們兩個對象是沒有關系的。
註意:我們發現兩個內存地址是不一樣的。另外,__main__表示這個類的入口是對應main下的.Person這個類。因為在Python語言中不像類似於C#這樣,需要些一個mian函數作為整個代碼的入口。但是這些內容通過下劃線的方式標識出來,隱含在類當中。通過實例化我們發現,兩個內存地址是不一樣的。也就是任何使用者都可以去實例化這個類,拿給自己用。
4. 訪問類的屬性:
格式:
對象名.屬性名
賦值:
對象名.屬性名 = 值
舉例說明:
# 實例化一個類 per = Person() # C# 語言Person per = new Person()這種實例化方法,Python省去很多了 per.name = "Thomas" per.age = 18 per.height = 160 per.weight = 80 print(per.name,per.age,per.height,per.weight) # 返回值:Thomas 18 160 80
5. 訪問類的方法:
格式:
對象名.方法
賦值:
對象名.方法(參數列表)
per.openDoor() # 我已經打開了冰箱門 per.fillEle() # 我已經把大象裝進冰箱了 per.closeDoor() # 我已經關閉了冰箱門 # 帶參數的方法訪問 per.eat("apple") # eat apple
總結:
這樣我們把在Python下面一個最基本的類的設計、建造、訪問屬性、訪問方法介紹完了。後面根據類的需求和特點進行詳細的分析。
Python筆記_第三篇_面向對象_2.第一個Python類