第四百一十二節,python接口,抽象方法抽象類

Python接口html

 

在Python中所謂的接口,有兩種,一種是經過url訪問的api接口python

 

一種是一個對象的接口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方法

 

 

抽象方法抽象類ui

 

抽象類與普通類的區別就是,抽象類裏能夠定義抽象方法,而抽象方法能夠作約束,凡是繼承抽象類、的類裏、必須實現(存在)抽象方法,不然報錯url

定義抽象類必須引入abc模塊spa

 

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)

 

 

報錯code


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
htm

 

 

叫賣錄音網
錄音網站對象

相關文章
相關標籤/搜索