面向對象詳解
面向對象:對象各自完成各自任務,面向過程是相當於領導者幫各對象完成任務。面向對象有點模塊化的意思,面向過程有牽一發動全身的意思。面向過程就有點什麽東西都得考慮到,面面俱到的意思。
類:說到面向對象必須知道類,例:類就是一個飛機模板,飛機就是對象。類就是一個模型,對象就是一個真正看得見摸得著的實體:
類的3個組成部分:
類型的名稱:類名
類的屬性:一組數據
類的方法:允許對進行操作的方法(行為),也就是它的功能
定義一個類:
class 類名:
#屬性
#方法
def eat(self):
print(“貓在吃魚”)
def drink(self):
print(“貓在喝kele...”)
創建一個對象就是在內存中開辟了一個內存空間
創建對象結果就是返回一個內存指向值。
對象使用的方法。
屬性不要在類裏面定義,直接在調用時添加即可:
調用屬性時也可以直接用函數定義在類裏,然後通過類調用即可。
self是誰調用self就是誰。
__init__:初始化對象屬性,不需要調用自動調用即可執行,默認值的設定。也稱為魔法方法,具有特殊功能的方法。
最好的屬性添加應該在初始化對象時通過__init__初始化,然後在調用類時傳遞參數。
__str__方法:必須要用return,也是自動調用,用來反映對象的描述信息。
類裏面的屬性就相當於全局變量,然後類裏面的方法都可以調用它。
烤地瓜,屬性值累加到對象定義完才是真正完成:
存家具:在對象裏放對象。
隱藏對象屬性:直接獲取屬性不安全,比如查看某人的工資,要別人允許才行,允許就return返回值,不允許就不rerurn,應該把這個屬性做成一個方法,那麽隱藏屬性就是通過方法來實現,不直接表現出來,這樣還可以避免設置成-10而程序不報錯的問題。
私有方法:加兩個__xx在函數裏的,那麽不讓在外面直接調用,而需要在另一個函數裏通過self.x的方式調用,這樣可以做到某些功能通過if判斷句驗證後才能調,起到一個控制作用:
__del__方法:當沒有東西調用的時候就用到,一般遊戲裏英雄死的時候會用到,就像硬鏈接有幾個引用,直到最後一次引用被幹掉後就會執行__del__:
import random:random就相當於工具箱,sys是個模塊。sys.getrefcount(t)就相當查看硬鏈接數,它比實際的要多1.
繼承:為什麽讓程序當中少寫代碼,直接繼承前面創建過的程序即可。讓子類直接調用父類即可,甚至貓類的吃可以繼承動物類的吃
父類:class xx:
子類:class xx(): 比父類多一個大括號。
面向對象詳解