zoukankan      html  css  js  c++  java
  • 接口

    当我们定义了多个类并且想使用其中相同的功能,我们可以使用接口来帮助我们简化代码量。

    例如:我们做一个支付的接口的时候,我们定义了三个类。分别是wechat,支付宝和applepay去支付,我们想要交付到用户手上使用时直接通过这个用户选择接口来实现。

    from abc import abstractclassmethod,ABCMeta
    class Payment(metaclass=ABCMeta):#元类,默认的元类为type
        @abc.abstractclassmethod
        def pay(self,money):
             raise NotImplemented #没有实现这个方法。
            #主动抛出一个异常。
    #规范:接口类或者抽象类都可以
    #接口类:默认多接口,接口类的所有的方法都必须不能实现。——java
    #抽象类:不支持多继承,抽象类中方法可以有一些代码的实现——Java
    
    
    class Wechat:
        def pay(self,money):
            print('已经使用微信支付了%s元'%money)
    
    class Alipay:
        def pay(self,money):
            print('已经使用支付宝支付了%s元'%money)
    class Applepay:
        def payl(self,money):
            print('已经使用apple支付了%s元'%money)
    
    
    def pay(pay_obi,money):#统一支付入口
        pay_obi.pay(money)
    wechat = Wechat()
    alipay = Alipay()
    apple = Applepay()
    pay(wechat,100)
    pay(alipay,1030)
    pay(apple,1030)

    这个程序有点问题,就是python在3.3版本的时候就弃用

    abstractclassmethod

    在接口规范那块应该是直接装饰
    @abstractclassmethod

    我用的版本是python3.6的。等我找到最新的方法后再回来更新。
  • 相关阅读:
    C#编程总结(三)线程同步 多线程
    配置 Spring.NET
    C# Redis
    WPF MvvmLight RelayCommand 绑定Command 的使用
    WCF编程系列(一)初识WCF
    C#/WPF程序开机自动启动
    C# 创建Windows Service(Windows服务)程序
    前端Js框架汇总
    列式存储和行式存储
    llvm-3.4.2 编译失败 解决方案
  • 原文地址:https://www.cnblogs.com/zly9527/p/11588000.html
Copyright © 2011-2022 走看看