python學習筆記十九(面向對象思想的編程)

1.第一個python類(創建類)
創建類之前需要先設計類
類名:見名知意,首字母大寫,其他遵循駝峯原則
屬性:見名知意,遵循駝峯原則
行爲(方法/功能):見名知意,遵循駝峯原則

類名:Car
屬性:color、type
行爲:run
類名:person
屬性:height、weight、age、name
行爲:eat、run

設計好之後創建類
類:是一種數據類型,本身並不佔內存空間,跟所學過的number、string、boolean等類似。用類創建實例化對象(變量),對象佔內存空間
格式:
class 類名(父類列表):
(空格)屬性
(空格)行爲
在這裏插入圖片描述
2.使用類實例化對象
格式:
對象名=類名(參數列表)
注意:沒有參數,小括號也不能省略
在這裏插入圖片描述
3.訪問對象的屬性與方法
訪問對象的屬性
格式:對象名.屬性名
賦值:對象名.屬性名=新值
訪問方法
格式:對象名.方法名(參數列表)
在這裏插入圖片描述
4.對象的初始狀態(構造函數)
構造函數:init()在使用類創建對象時自動調用
注意:如果不顯示的寫出構造函數,默認會自動添加一個空的構造函數
在這裏插入圖片描述
在這裏插入圖片描述
5.self
(self不是關鍵字,換成其他標識符也是可以的,但是一般都使用self)

  • self代表類的實例而非類
  • 哪個對象調用方法,那麼該方法中的self就代表哪個對象
    在這裏插入圖片描述
    在這裏插入圖片描述
  • self.class 代表類名
    在這裏插入圖片描述
    在這裏插入圖片描述
    6.析構函數
    析構函數:del() 釋放對象時自動調用
    在函數裏定義的對象在函數結束時自動釋放,這樣可以用來減少內存空間的浪費
    7.重寫__repr__與__str__函數
    重寫:將函數重新定義寫一遍
    str():在調用print打印對象時自動調用,是給用戶用的,是一個描述對象的方法
    在這裏插入圖片描述
    repr():是給機器用的,在python解釋器裏邊直接敲對象名在回車後調用的方法
    注意:在沒有__str__且有__repe__時,str=repr
    優點:當一個對象的屬性值很多,而且都需要打印時,重寫了__str__方法後簡化了代碼
    8.訪問限制
    如果要讓內部的屬性不被外部直接訪問,就在屬性前加兩個下劃線(__)。在python中如果在屬性前加兩個下劃線,那麼這個屬性就變成了私有屬性
    在這裏插入圖片描述
    當直接訪問money時會報錯是因爲python解釋器把__money變成了_Person__money,仍然可以用_Person__money去訪問,但是一般不建議使用。不同的解釋器可能存在的解釋變量名不一致
    在這裏插入圖片描述
    在python中__XXX__屬於特殊變量,可以直接訪問
    在這裏插入圖片描述
    在python中,_XX 變量,這樣的實例變量外部是可以訪問的,但是按照約定的規則,當我們看到這樣的變量時,意思是“雖然我可以被訪問,但是請把我視爲私有變量,不要直接訪問我”
    在這裏插入圖片描述
    9.繼承
    繼承:假設有兩個類,A類和B類,當我們說A類繼承自B類的時候,那麼A類就擁有了B類中的所有屬性和方法
    在這裏插入圖片描述
    注意:繼承者稱爲子類,被繼承者稱爲父類
    繼承的作用(優點)
    (1)簡化了代碼,減少了冗餘
    (2)提高了代碼的健壯性
    (3)提高了代碼的安全性
    (4)是多態的前提
    缺點
    耦合與內聚是描述類與類之間的關係的,耦合性越低,內聚性越高代碼越好,但是繼承的耦合性較高
    單繼承的實現
    父類:Person
    在這裏插入圖片描述
    子類:Student和Worker
    在這裏插入圖片描述
    在這裏插入圖片描述
    實現:
    在這裏插入圖片描述
    子類可以有一些獨立的屬性(例如學生的學號)
    在這裏插入圖片描述
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章