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编程开发之日期操作实例分析
Nov 13 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
详解Django 中是否使用时区的区别
Jun 14 Python
Python Pillow Image Invert
Jan 22 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 Python
Python测试框架pytest高阶用法全面详解
Jun 01 Python
如何利用python创作字符画
Jun 25 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中$_SERVER的详细参数与说明
2008/07/29 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
php查询whois信息的方法
2015/06/08 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
python计算日期之间的放假日期
2018/06/05 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
C语言编程题
2015/03/09 面试题
方正Java笔试题
2014/07/03 面试题
护理不良事件检讨书
2014/02/06 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
房地产开盘策划方案
2014/02/10 职场文书
置业顾问岗位职责
2014/03/02 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
教育教学读书笔记
2015/07/02 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
使用python求解迷宫问题的三种实现方法
2022/03/17 Python
python字符串的一些常见实用操作
2022/04/06 Python
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技