第四百一十二节,python接口,抽象方法抽象类

Posted 林贵秀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四百一十二节,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:\Evns\jxiou\Scripts\python.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

 

 

叫卖录音网
录音网站

 









以上是关于第四百一十二节,python接口,抽象方法抽象类的主要内容,如果未能解决你的问题,请参考以下文章

第四百一十四节,python常用算法学习

一起Talk Android吧(第四百一十七回:解决Glide不能加载网络图片的方法)

一起Talk Android吧(第四百一十回:绘制曲线)

一起Talk Android吧(第四百一十八回:制作时钟)

第四百一十三四五天 how can I 坚持

一起Talk Android吧(第四百一十三回:使用三角函数绘制正弦波)