zoukankan      html  css  js  c++  java
  • 第四百一十二节,python接口,抽象方法抽象类

    Python接口

    在Python中所谓的接口,有两种,一种是通过url访问的api接口

    一种是一个对象的接口

    构造接口

    class Ijiekou:
        """
        定义一个约束接口
        """
        def f1(self,nid):
            raise Exception('所有继承此接口类的类必须实现(存在)f1方法')
    
    
    class oduixiang1(Ijiekou):
        """
        继承接口实现了f1方法
        """
        def f1(self, nid):
            print(nid)
    
    
    class oduixiang2(Ijiekou):
        """
        继承接口没有实现f1方法
        """
    
    # 继承接口实现了f1方法
    obj1 = oduixiang1()
    obj1.f1(1)
    
    
    # 继承接口没有实现f1方法
    obj2 = oduixiang2(抽象方法抽象类)
    obj2.f1(2)
    obj2.f1(2)
      File "H:/shipbfq/22.py", line 10, in f1
        raise Exception('所有继承此接口类的类必须实现(存在)f1方法')
    Exception: 所有继承此接口类的类必须实现(存在)f1方法

    抽象方法抽象类

    抽象类与普通类的区别就是,抽象类里可以定义抽象方法,而抽象方法可以做约束,凡是继承抽象类、的类里、必须实现(存在)抽象方法,否则报错

    定义抽象类必须引入abc模块

    import abc
    
    
    class Ijiekou(metaclass=abc.ABCMeta):
        """
        定义抽象类必须设置metaclass=abc.ABCMeta
        """
        def f1(self,nid):
            """
            普通方法
            """
            print(123)
    
        @abc.abstractmethod
        def f2(self):
            """
             抽象方法,设置抽象方法必须加装饰器@abc.abstractmethod
            """
    
    
    class oduixiang1(Ijiekou):
        """
        继承抽象类
        """
        def f3(self, nid):
            print(nid)
    
        # def f2(self,nid):
        #     """
        #      继承了抽象类,而抽象类里有抽象方法,就必须实现抽象方法不然会报错,(约束)
        #     """
        #     print(456)
    
    # 继承接口实现了f1方法
    obj1 = oduixiang1()
    obj1.f1(1)
    
    

    报错


    E:EvnsjxiouScriptspython.exe H:/shipbfq/22.py
    Traceback (most recent call last):
      File "H:/shipbfq/22.py", line 37, in <module>
        obj1 = oduixiang1()
    TypeError: Can't instantiate abstract class oduixiang1 with abstract methods f2

    叫卖录音网
    录音网站

  • 相关阅读:
    curl命令查看响应时间
    sshd修改监听端口
    nginx proxy_set_header设置,自定义header
    nginx.conf详解
    系统盘脚本扩容
    IDEA中编写脚本并运行shell脚本
    常用的pdf工具
    POJ:3279-Fliptile【状态压缩】【DFS】
    POJ:Dungeon Master(BFS模板题)
    #1198:Farm Irrigation(DFS + 并查集)
  • 原文地址:https://www.cnblogs.com/adc8868/p/8926140.html
Copyright © 2011-2022 走看看