第四百一十二节,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接口、抽象类与抽象方法
接口: -url -数据类型,python不存在 class 类名 1.类中的方法可以写任意多个 2.如果想要对类中的方法做约束,就需要写接口 接口中定义一个方法f1,可以约束继承他的子类 class ...
- Caffe学习系列(13):数据可视化环境(python接口)配置
caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...
- ubuntu16.04+caffe+python接口配置
在Windows上用了一个学期的caffe了.深感各种不便,于是乎这几天在ubuntu上配置了caffe和它的python接口,现在记录配置过程,亲测可用: 环境:ubuntu16.04 , caff ...
- caffe(13) 数据可视化(python接口)配置
caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...
- python面向对象编程 继承 组合 接口和抽象类
1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均用点来访问自己的 ...
- python开发面向对象基础:接口类&抽象类&多态&钻石继承
一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...
- Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类
一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...
- python之接口与抽象类
一.接口与归一化设计 1.什么是接口 1)是一组功能集合 2)接口的功能是用于交互 3)接口只定义函数,但不涉及函数的实现 4)这些功能是相关的 2.为什么要用接口 接口提取了一群类共同的函数,然后让 ...
- [ python ] 接口类和抽象类
接口类 继承有两种用途:1. 继承基类的方法,并且做出自己的改变或者扩展(代码重用)2. 申明某个子类兼容于某基类,定义一个接口类interface,接口类定义了一些接口名且未实现接口的功能,子类继承 ...
随机推荐
- 【开源GPS追踪】 之 服务器硬伤
前面就说过了,目前GPS 追踪的原理都是通过GPRS将数据发送到一个服务器上,如果回看数据就从服务器上去数据,服务器在整个系统中具有举足轻重的地位. 如果服务器坏了,整个系统几千台设备可能也就无法工作 ...
- SpringMVC处理器映射器和方法名称解析器
所谓配置式开发是指,“处理器类是程序员手工定义的,实现了特定接口的类,然后再在SpringMVC配置文件中对该类进行显式的,明确的注册”的开发方式” 1.处理器映射器HandlerMapping Ha ...
- 修改HAL标准库用printf函数发送数据直接输出
主函数文件,请直接关注自己写上去的代码: 直接看43行代码:#include "stdio.h"//要添加这个头文件 还有97行到112行:实现用HAL库函数和printf函数发送 ...
- 使用JfreeChart生成图表遇到的问题
生成的图片不显示 需要在web.xml中配置一个指定的Servlet <servlet> <servlet-name>DisplayChart</servlet-name ...
- 国际化之iPhone设备支持的语种
有没有想过,iPhone 语言到底支持多少语言呢?我倒是搜索了一下,整理出下面一份列表,供大家参考 参考链接: https://www.ibabbleon.com/iOS-Language-Codes ...
- Nginx配置实际案例
user root root;worker_processes 2; #error_log logs/error.log;#error_log logs/error.log notice;#error ...
- Elastic{ON}参会随手记
Elastic{ON} 同事送了一张Elastic{ON}的票,因为我们的产品中用到的ELK全家桶,实话说用的体量还挺大的,因此非常想去参加这次的发布会. 7.0的新特性 上午的会议是来自总部的一名工 ...
- 使用cefsharp 浏览器放大
(1)如果浏览器位置有问题,需要设置 Cef.EnableHighDPISupport(); (2)如果要放大浏览器,需要设置 browser.SetZoomLevel(1.25); Chromiu ...
- CentOS7.2网络配置
修改hostname vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain ...
- shell编程学习笔记(十一):Shell中的while/until循环
shell中也可以实现类似java的while循环 while循环是指满足条件时,进行循环 示例: #! /bin/sh index=10 while [ $index -gt 0 ] do inde ...