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()
相关文章
相关标签/搜索