博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第四百一十二节,python接口,抽象方法抽象类
阅读量:6090 次
发布时间:2019-06-20

本文共 1393 字,大约阅读时间需要 4 分钟。

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 abcclass 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

 

 

 

转载地址:http://zwvwa.baihongyu.com/

你可能感兴趣的文章
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>
网络安全管理技术作业-SNMP实验报告
查看>>
根据Uri获取文件的绝对路径
查看>>
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>
边缘控制平面Ambassador全解读
查看>>
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>
字符设备与块设备的区别
查看>>