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接口,抽象方法抽象类的更多相关文章

  1. python接口、抽象类与抽象方法

    接口: -url -数据类型,python不存在 class 类名 1.类中的方法可以写任意多个 2.如果想要对类中的方法做约束,就需要写接口 接口中定义一个方法f1,可以约束继承他的子类 class ...

  2. Caffe学习系列(13):数据可视化环境(python接口)配置

    caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...

  3. ubuntu16.04+caffe+python接口配置

    在Windows上用了一个学期的caffe了.深感各种不便,于是乎这几天在ubuntu上配置了caffe和它的python接口,现在记录配置过程,亲测可用: 环境:ubuntu16.04 , caff ...

  4. caffe(13) 数据可视化(python接口)配置

    caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...

  5. python面向对象编程 继承 组合 接口和抽象类

    1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均用点来访问自己的 ...

  6. python开发面向对象基础:接口类&抽象类&多态&钻石继承

    一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...

  7. Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  8. python之接口与抽象类

    一.接口与归一化设计 1.什么是接口 1)是一组功能集合 2)接口的功能是用于交互 3)接口只定义函数,但不涉及函数的实现 4)这些功能是相关的 2.为什么要用接口 接口提取了一群类共同的函数,然后让 ...

  9. [ python ] 接口类和抽象类

    接口类 继承有两种用途:1. 继承基类的方法,并且做出自己的改变或者扩展(代码重用)2. 申明某个子类兼容于某基类,定义一个接口类interface,接口类定义了一些接口名且未实现接口的功能,子类继承 ...

随机推荐

  1. 潭州课堂25班:Ph201805201 django 项目 第四十课 后台 文章发布,更新实现,热门新闻管理,轮播图管理(课堂笔记)

    把图片上传到 七牛云,必须经过后台的许可, 在虚拟机中安装七牛云所需模块pip install qiniu # 创建utils/secrets/qiniu_secret_info.py文件 # 从七牛 ...

  2. [AHOI2009]维护序列

    OJ题号:洛谷2023.BZOJ1798 思路: 参见[洛谷3373][模板]线段树 2 #include<cstdio> #include<cctype> #include& ...

  3. Linux下redis 的部署、主从与集群

    老男孩Python全栈6期——redis--------------------------Linux 操作系统 默认的内存管理机制RSS:page cache:anno page:Linux操作系统 ...

  4. Docker安装管理界面portainer

    在Ubuntu或者Debian已经部署完毕Docker 拉取镜像文件: sudo docker pull docker.io/portainer/portainer Using default tag ...

  5. BZOJ4858 : [Jsoi2016]炸弹攻击 2

    枚举每个$S$作为原点,将所有$D$和$T$极角排序. 枚举每个$T$,那么另一个$T$需要和当前的$T$夹角不超过$180$度,贡献为内部$D$的个数. 双指针后用前缀和查询区间的贡献即可. 时间复 ...

  6. yii2 basic版基础部分

    Yii2.0 basic 版 yii 官方网站:http://www.yiiframework.com/ 一.安装: 1.下载地址:http://www.yiichina.com/download 从 ...

  7. pointer-net

    Pointer network 主要用在解决组合优化类问题(TSP, Convex Hull等等),实际上是Sequence to Sequence learning中encoder RNN和deco ...

  8. db2 load报文件系统满

    使用db2 load导入数据 数据量比较大时常常会报文件系统已满错误. 原因分析:导入表建有索引,在load的“索引复制”阶段会从系统临时表空间拷贝到目标表空间,导致系统临时表空间所在的文件系统满,l ...

  9. 小甲鱼Python第十一讲课后习题

    0. 注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案. old = [1, 2, 3, 4, 5]new = oldold = [6]print(new) 如果不上机操作,你觉得会 ...

  10. JS_高程4.变量,作用域和内存问题(1)

    1.基本类型和应用类型的值 ECMAScript变量可能包含两种不同数据类型的值: 基本类型值——简单的数据段.(5种基本的数据类型,按值访问,因为可以操作保存在变量中的实际的值.) 引用类型值——多 ...