說明:呼叫不同子類物件相同父類方法。
步驟:定義父類,並提供公共方法
定義子類,子類中重寫父類方法
傳遞子類給呼叫者,可以看到子類執行效果不同
class 復仇者聯盟():
defmethod
(self)
:#定義父類 並提供公共方法
print
('打滅霸'
)class 鋼鐵俠(復仇者聯盟)
:#子類重寫父類同名的方法
defmethod
(self)
:print
('空中作戰'
)class 美國隊長(復仇者聯盟)
:#子類重寫父類同名的方法
defmethod
(self)
:print
('在地面作戰'
)class 神盾局():
defcommand
(self,復仇者聯盟)
:#神盾局召喚哪一派系的英雄是不一定的.但是都在復聯裡 所以以複聯做形參
return 復仇者聯盟.method(
)幫派1
= 鋼鐵俠(
)幫派2
= 美國隊長(
)物件 = 神盾局(
)物件.command(幫派1
)#呼叫方法:把物件放進去
物件.command(幫派2
)
空中作戰
在地面作戰
class
warrior()
: god =
'athena'
golden = warrior(
)bronze = warrior(
)#通過類訪問 格式:類.類屬性
print
(warrior.god)
#通過物件訪問 格式:物件.類屬性
print
(golden.god)
athena
athena
說明:只能通過類物件來修改。
lass warrior():
god =
'athena'
golden = warrior(
)bronze = warrior(
)warrior.god =
'harris'
print
(warrior.god)
harris
類方法特點:需要用裝飾器@classmethod來標誌其為類方法。
對於類方法,第乙個引數必須是類物件。一般以cls作為第乙個引數。
使用場景:當方法中需要使用類物件,定義類方法。
class
warrior()
: weapon =
'gold cloth'
@classmethod
#縮排def
gweapon
(cls)
:return cls.weapon
i = warrior(
)print
(i.gweapon(
))
gold cloth
說明:方法中不需要使用例項方法和類方法。
class
warrior()
: @staticmethod
defmethod()
:print
('同樣的招式只能對聖鬥士使用一次'
)i = warrior(
)i.method(
)warrior.method(
)#類和物件都可以呼叫
同樣的招式只能對聖鬥士使用一次
同樣的招式只能對聖鬥士使用一次
Python3基礎筆記 物件導向
只是對一些新的知識的記錄 class classname 類例項化後,可以使用其屬性,實際上,建立乙個類之後,可以通過類名訪問其屬性。init 方法可以有引數 定義乙個名為 init 的特殊方法 構造方法 def init self self.data 類定義了 init 方法的話,類的例項化操作會...
python物件導向基礎 python物件導向基礎
面向過程與物件導向 面向過程的程式設計的核心是過程 流水線式思維 過程即解決問題的步驟,面向過程的設計就好比精心設計好的一條流水線,考慮周全什麼時候處理什麼東西。優點 極大降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊 即可。缺點 一套流水線或者流程就是解決乙個問題,牽一髮而動全身。應用場景 一...
python 物件導向 3
析構函式 例項被銷毀時候自動呼叫的方法,例如關閉資料庫,可以將關閉資料庫的 寫到析構函式裡 class person def init self print 建構函式 def del self 例項被銷毀的時候自動呼叫的函式 print 析構函式 deftell self print 說話 del ...