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 相关文章推荐
qpython3 读取安卓lastpass Cookies
Jun 19 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
如何用python整理附件
May 13 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
Python实现的文轩网爬虫完整示例
May 16 Python
Python学习笔记之集合的概念和简单使用示例
Aug 22 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 Python
Python基础之数据结构详解
Apr 28 Python
Python中使用subprocess库创建附加进程
May 11 Python
用Python将GIF动图分解成多张静态图片
Jun 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性能优化准备篇图解PEAR安装
2011/12/05 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
php操作access数据库的方法详解
2017/02/22 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
php输出形式实例整理
2020/05/05 PHP
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
小程序实现投票进度条
2019/11/20 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
Python之父谈Python的未来形式
2016/07/01 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
numpy.where() 用法详解
2019/05/27 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
仓库管理专业个人自我评价范文
2013/11/11 职场文书
退休感言
2014/01/28 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
会计电算化实训报告
2014/11/04 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
幸福来敲门观后感
2015/06/04 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL