pythonオブジェクト向け(抽象クラス、インタフェースクラス)

3493 ワード

python          
,
, ,
, , ( all_type) ( read、write),
from abc import ABCMeta,abstractmethod    #    


class Payment(metaclass=ABCMeta):  #    (   ):
    @abstractmethod  #   
    def pay(self): pass  #        
    #@abstractmethod
    def func(self):pass


class Alipay(Payment):
    def __init__(self,money):
        self.money = money

    def pay(self):
        print('        %s' %self.money)


class Jdpay(Payment):
    def __init__(self, money):
        self.money = money

    def pay(self):
        print('       %s' % self.money)

class Wechatpay(Payment):

    def __init__(self,money):
        self.money = money

    def pay(self):
        print('       %s' % self.money)


def pay(obj):
    obj.pay()
w1 = Wechatpay(200)
a1 = Alipay(200)
j1 = Jdpay(100)
pay(a1)  #      
pay(j1)

w1 = Wechatpay(300)
w1.weixinpay()


抽象クラスを定義した後:
抽象クラスを継承するサブクラスには、抽象クラス内のすべての装飾されたメソッド(関数)が含まれている必要があります.これにより、実行できます.
転載先:https://www.cnblogs.com/dong-/p/9374406.html