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端口扫描系统实现方法
Nov 19 Python
Python中使用PIPE操作Linux管道
Feb 04 Python
Python实现的数据结构与算法之双端队列详解
Apr 22 Python
利用信号如何监控Django模型对象字段值的变化详解
Nov 27 Python
python梯度下降法的简单示例
Aug 31 Python
django+mysql的使用示例
Nov 23 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
python+django+rest框架配置创建方法
Aug 31 Python
Python生成随机验证码代码实例解析
Jun 09 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 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项目中比较通用的php自建函数的详解
2013/06/06 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
js实现随机点名功能
2020/12/23 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
python使用正则筛选信用卡
2019/01/27 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
不用游标的SQL语句有哪些
2012/09/07 面试题
高职教师岗位职责
2013/12/24 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
总结表彰大会主持词
2014/03/26 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
离婚协议书范本
2015/01/26 职场文书