Python面向對象之接口類(抽象類)

Python面向對象之接口類(抽象類):就是制定一個規範。

好比定義了一個接口類(抽象類)(他們是不能夠進行實例化的,這就是他爲何是制定一個規範的緣由)。
他的定義是須要abc模塊,要變的就是他的方法,好比下面的pay方法,
定義好一個抽象類(接口類)Payment,他用裝飾器@abstractmethod將pay方法裝飾
這樣,其餘類若是都繼承了Payment方法,其餘類中就都須要有一個pay方法,若是沒有就會報錯。

就比如,起初我沒有微信支付類,可是若是後續項目須要加微信支付此功能,支付的方法我能夠起各類名字。
可是爲了統一支付接口,咱們繼承抽象類Payment後,咱們的支付接口名就必須用pay.

這就是接口類(抽象類的用途)

from abc import ABCMeta, abstractmethod


class Payment(metaclass=ABCMeta):  # 抽象類(接口類)
    @abstractmethod
    def pay(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,))

w1 = Wechatpay(200)
a1 = Alipay(150)
j1 = Jdpay(100)
w1.pay()
a1.pay()
j1.pay()
相關文章
相關標籤/搜索