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控制台英汉汉英电子词典
Apr 23 Python
python递归计算N!的方法
May 05 Python
Python中常见的异常总结
Feb 20 Python
Python实现的个人所得税计算器示例
Jun 01 Python
python单例模式的多种实现方法
Jul 26 Python
pandas的排序和排名的具体使用
Jul 31 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
python pillow模块使用方法详解
Aug 30 Python
python上传时包含boundary时的解决方法
Apr 08 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
深入了解Python 方法之类方法 &amp; 静态方法
Aug 17 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 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高手?学会“懒惰”的编程
2006/12/05 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
python文本数据处理学习笔记详解
2019/06/17 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
婚礼新人答谢词
2015/01/04 职场文书
办公经费申请报告
2015/05/15 职场文书
导游词之无锡古运河
2019/11/14 职场文书
SpringBoot 集成Redis 过程
2021/06/02 Redis
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
基于PyQt5制作一个群发邮件工具
2022/04/08 Python
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL