菜鸟笔记
提升您的技术认知

python抽象类——abstractmethod方法和应用-ag真人游戏

python本身不提供抽象类和接口机制,要想实现抽象类,可以借助abc模块。通过定义抽象类,我们可以约定子类必需实现的方法。从abc模块导入abc类,和abstractmethod抽象方法装饰器

抽象类作用:

  • 抽象类就是控制子类的方法的名称,要求子类必须按照父类的要求的实现指定的方法,且方法名要和父类保持一致

注意:

  • 抽象类不能实例化
  • 继承抽象类的子类,如果没有重写所有(abstractmethod装饰的方法都得实现)抽象方法,则这个类也是抽象的,不能实例化。

具体应用:
假如你在商城买了东西,付款的方式可以选择微信,支付宝,苹果支付三种。在支付的时候,就需要调用不同的接口,无法做到统一入口。此时可以用到抽象类的思想。调用支付方法时,实例化不同的对象去调用同一个名称的接口。

from abc import abc, abstractmethod
class pay(abc):
    @abstractmethod
    def pay(self, amount):
        pass
class alipay(pay):
    def pay(self, amount):
        print(f"支付宝支付{
  amount}元")
class wetpay(pay):
    def pay(self, amount):
        print(f"微信支付{
  amount}元")
class applepay(pay):
    def pay(self, amount):
        print("这是华为支付{amount}")
def pay(obj, amount):
    obj.pay(amount)
if __name__ == "__main__":
    ali_pay = alipay()
    wet_apy = wetpay()
    pay(ali_pay, 100)
    pay(wet_apy, 1000)
网站地图