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中使用Mako模版库的简单教程
Apr 08 Python
Python使用redis pool的一种单例实现方式
Apr 16 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
《Python学习手册》学习总结
Jan 17 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
python的常见矩阵运算(小结)
Aug 07 Python
python脚本执行CMD命令并返回结果的例子
Aug 14 Python
python+tkinter实现学生管理系统
Aug 20 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
Sep 09 Python
python3排序的实例方法
Oct 20 Python
详解python网络进程
Jun 15 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 获得汉字拼音首字母的函数
2009/08/01 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
jQuery代码优化之基本事件
2011/11/01 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
Python的print用法示例
2014/02/11 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Python单例模式实例详解
2017/03/01 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
Python流程控制 if else实现解析
2019/09/02 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
python 实现单例模式的5种方法
2020/09/23 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
巴西女装购物网站:Eclectic
2018/04/24 全球购物
数控机床专业自荐信
2014/05/19 职场文书
暑期培训心得体会
2014/09/02 职场文书
师范生教育见习总结
2015/06/23 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
PyQt5爬取12306车票信息程序的实现
2021/05/14 Python
openstack云计算keystone组件工作介绍
2022/04/20 Servers