Python编程中NotImplementedError的使用方法


Posted in Python onApril 21, 2018

Python编程中raise可以实现报出错误的功能,而报错的条件可以由程序员自己去定制。在面向对象编程中,可以先预留一个方法接口不实现,在其子类中实现。

如果要求其子类一定要实现,不实现的时候会导致问题,那么采用raise的方式就很好。

而此时产生的问题分类是NotImplementedError。

写一段代码如下:

class ClassDemo:
    def test_demo(self):
           raiseNotImplementedError("my test: not implemented!")
 
classChildClass(ClassDemo):
    pass
 
inst =ChildClass()
inst.test_demo()

程序运行结果:

E:\01_workspace\02_programme_language\03_python\OOP\2017\08\10>pythonerror_demo.py
Traceback (mostrecent call last):
 File "error_demo.py", line 9, in<module>
  inst.test_demo()
 File "error_demo.py", line 3, intest_demo
  raise NotImplementedError("my test:not implemented!")
NotImplementedError:my test: not implemented!

从上面的运行结果可以看出,程序识别到了这个方法并没有在子类中实现却被调用了。

从代码报错的行数来看,只有这个子类的实例化对象调用相应的方法的时候才会报错。

这样的推测结论也很容易通过代码修改测试得到验证,此处不再验证。

进一步修改代码:

class ClassDemo:
    def test_demo(self):
           raiseNotImplementedError("my test: not implemented!")
 
classChildClass(ClassDemo):
    def test_demo(self):
       print("OKOKOOK!")
 
inst =ChildClass()
inst.test_demo()

在新的代码中,子类中实现了对test_demo方法的设计。

程序的运行结果如下:

E:\01_workspace\02_programme_language\03_python\OOP\2017\08\10>pythonerror_demo.py
OKOKOOK!

从程序的执行结果可以看出,只要相应的方法接口进行了实现,在执行的时候未实施的错误便不会报出。

以上这篇Python编程中NotImplementedError的使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
python&amp;MongoDB爬取图书馆借阅记录
Feb 05 Python
详解Python安装scrapy的正确姿势
Jun 26 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
python实现维吉尼亚算法
Mar 20 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
python查看文件大小和文件夹内容的方法
Jul 08 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
python实现logistic分类算法代码
Feb 28 Python
Django ValuesQuerySet转json方式
Mar 16 Python
python交互模式基础知识点学习
Jun 18 Python
Python try except finally资源回收的实现
Jan 25 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 #Python
python 限制函数调用次数的实例讲解
Apr 21 #Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 #Python
对Python中的@classmethod用法详解
Apr 21 #Python
python3+dlib实现人脸识别和情绪分析
Apr 21 #Python
Python通过属性手段实现只允许调用一次的示例讲解
Apr 21 #Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 #Python
You might like
php批量删除数据
2007/01/18 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
node.js中的console用法总结
2014/12/15 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
javascript实现评分功能
2020/06/24 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
pytorch中index_select()的用法详解
2021/01/06 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
餐饮周年庆活动方案
2014/08/14 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
Mysql文件存储图文详解
2021/06/01 MySQL