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 相关文章推荐
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
Jan 23 Python
python实现的udp协议Server和Client代码实例
Jun 04 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
八大排序算法的Python实现
Jan 28 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
Jun 17 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
Sep 20 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 Python
学点简单的Django之第一个Django程序的实现
Feb 24 Python
python实现求纯色彩图像的边框
Apr 08 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
多重?l件?合查?(一)
2006/10/09 PHP
简单JS代码压缩器
2006/10/12 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
Python爬虫学习之翻译小程序
2019/07/30 Python
python能做什么 python的含义
2019/10/12 Python
python创建子类的方法分析
2019/11/28 Python
Python拼接字符串的7种方式详解
2020/03/19 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
您的网上新华书店:文轩网
2016/08/24 全球购物
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
GWT都有什么特性
2016/12/02 面试题
仓库主管的岗位职责
2013/12/04 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
创先争优个人承诺书
2014/08/30 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
电力培训心得体会
2014/09/02 职场文书
银行业务授权委托书
2014/10/10 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
市级三好学生评语
2014/12/29 职场文书
个人求职意向书
2015/05/11 职场文书
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL
Mysql使用全文索引(FullText index)的实例代码
2022/04/03 MySQL
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript