1. 程式人生 > >python編程設計模式之接口類和抽象類

python編程設計模式之接口類和抽象類

支持 不能 進行 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編程設計模式之接口類和抽象類