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使用urllib2实现发送带cookie的请求
Apr 28 Python
python关键字and和or用法实例
May 28 Python
Python通过正则表达式选取callback的方法
Jul 18 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
requests在python中发送请求的实例讲解
Feb 17 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
PHPMailer邮件发送的实现代码
2013/05/04 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
PHP实现八皇后算法
2019/05/06 PHP
自己的js工具_Form 封装
2009/08/21 Javascript
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
使用pdb模块调试Python程序实例
2015/06/02 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
详解python中的 is 操作符
2017/12/26 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
django 读取图片到页面实例
2020/03/27 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
关于抽烟的检讨书
2014/02/25 职场文书
招标承诺书
2014/08/30 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
MySQL数据迁移相关总结
2021/04/29 MySQL
MySQL 时间类型的选择
2021/06/05 MySQL