python編程設計模式之接口類和抽象類
阿新 • • 發佈:2018-01-22
支持 不能 進行 eth bstr 單繼承 += 就會 imp
接口類
""" 接口類 是一種編程設計模式,在python原本沒有接口類 借用Java思想創建的一種規範設計模式 支持多繼承,進行多方面規範 """
例子:
from abc import abstractmethod, ABCMeta class Clergy(metaclass=ABCMeta): # 規範子類都要有cure方法 @abstractmethod # 裝飾要規範的方法 def cure(self, HP): # 規範方法必須要pass,不能實現 pass class Holy(Clergy):def cure(self, HP): HP += 100 return HP class Discipline(Clergy): def cure(self, HP): HP += 100 return HP class Shadow(Clergy): def zhiliao(self, HP): HP += 100 return HP # 創建牧師的三種分支 holy = Holy() discipline = Discipline() # shadow = Shadow() # Shadow類沒有規定方法cure,不能實例化,實例化就會報錯提醒# 都有治療的技能 print(holy.cure(10)) # 110 print(discipline.cure(20)) # 120
抽象類
""" 抽象類 python支持抽象類,一般規範單繼承 """
例子
import abc class Clergy(metaclass=abc.ABCMeta): # 規範子類都要有cure方法 @abc.abstractmethod def cure(self, HP): # 規範方法可以有一定代碼功能 HP += 100 return HP class Holy(Clergy):def cure(self, HP): HP += 100 return HP class Discipline(Clergy): def cure(self, HP): HP += 100 return HP class Shadow(Clergy): def zhiliao(self, HP): HP += 100 return HP # 創建牧師的三種分支 holy = Holy() discipline = Discipline() # shadow = Shadow() # Shadow類沒有規定方法cure,不能實例化,實例化就會報錯提醒 # 都有治療的技能 print(holy.cure(10)) # 110 print(discipline.cure(20)) # 120
python編程設計模式之接口類和抽象類