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 zip文件 压缩
Dec 24 Python
python中的对象拷贝示例 python引用传递
Jan 23 Python
python实现自动重启本程序的方法
Jul 09 Python
Python多继承顺序实例分析
May 26 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
python web自制框架之接受url传递过来的参数实例
Dec 17 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
python批量修改ssh密码的实现
Aug 08 Python
python 6.7 编写printTable()函数表格打印(完整代码)
Mar 25 Python
基于python图书馆管理系统设计实例详解
Aug 05 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
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
python实现京东秒杀功能
2018/07/30 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
HTML5标签小集
2011/08/02 HTML / CSS
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
致400米运动员广播稿
2014/02/07 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
年会搞笑主持词
2014/03/27 职场文书
音乐教师求职信
2014/06/28 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
写给老婆的保证书
2015/02/27 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
Java8中接口的新特性使用指南
2021/11/01 Java/Android