1. 程式人生 > >Python筆記_第三篇_面向對象_2.第一個Python類

Python筆記_第三篇_面向對象_2.第一個Python類

劃線 關閉 mage 第一個 類名 不能 closed main eight

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類