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多线程threading.Lock锁用法实例
Nov 01 Python
python中Genarator函数用法分析
Apr 08 Python
Python isinstance函数介绍
Apr 14 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
Python 监测文件是否更新的方法
Jun 10 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 Python
python本地文件服务器实例教程
May 02 Python
Django如何创作一个简单的最小程序
May 12 Python
聊聊Python String型列表求最值的问题
Jan 18 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字符串截取函数用法分析
2014/11/25 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
vue生命周期的探索
2019/04/03 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
[46:55]Ti4 冒泡赛第二轮 LGD vs C9
2014/07/14 DOTA
Python转码问题的解决方法
2008/10/07 Python
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
python实现TCP文件传输
2020/03/20 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
小学生打架检讨书
2014/01/26 职场文书
大课间体育活动方案
2014/03/12 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
最美家庭活动方案
2014/08/31 职场文书
营销总监岗位职责
2014/09/16 职场文书
部队2015年终工作总结
2015/04/02 职场文书
机关保密工作承诺书
2015/05/04 职场文书
Python机器学习之基础概述
2021/05/19 Python
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL