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设计模式大全
Jun 27 Python
Python中字典的setdefault()方法教程
Feb 07 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
Oct 09 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
python 常见的反爬虫策略
Sep 27 Python
Python PIL按比例裁剪图片
May 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实现加密的几种方式介绍
2015/02/22 PHP
php简单socket服务器客户端代码实例
2015/05/18 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
python中as用法实例分析
2015/04/30 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python装饰器用法实例总结
2018/05/26 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
python实现小球弹跳效果
2019/05/10 Python
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
英国在线花园中心:You Garden
2018/06/03 全球购物
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
竞争上岗演讲稿
2014/01/05 职场文书
学生励志演讲稿
2014/01/06 职场文书
家长评语和期望
2014/02/10 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
中学生操行评语
2014/04/24 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
总经理年会致辞
2015/07/29 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书