raise NotImplementedError

2024-02-07 14:48
文章标签 raise notimplementederror

本文主要是介绍raise NotImplementedError,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 Python编程中raise可以实现报出错误的功能,而报错的条件可以由程序员自己去定制。在面向对象编程中,可以在父类中先预留一个方法接口不实现,在其子类中实现。如果要求其子类一定要实现,不实现的时候会导致问题,那么采用raise的方式就很好。而此时产生的问题分类是NotImplementedError。

示例:

class FatherClass:def func(self):raise NotImplementedError("ERROR: func not implemented!")class ChildClass(FatherClass):passobj = ChildClass()
obj.func()

在以上例子中,子类没有实现父类中的func函数,在用子类生成类对象的时候不会出错,但在调用父类的func函数的时候,会爆出以下错误:

Traceback (most recent call last):File "/media****/test.py", line 111, in <module>obj.func()File "/media****/test.py", line 104, in funcraise NotImplementedError("ERROR: func not implemented!")
NotImplementedError: ERROR: func not implemented!

即,在调用父类的func函数时,python会自动识别该函数有没有在子类中被实现。

要改正以上错误只需要在子类中实现父类的func函数就行了,如下:

class FatherClass:def func(self):raise NotImplementedError("ERROR: func not implemented!")class ChildClass(FatherClass):def func(self):print("hello world!")obj = ChildClass()
obj.func()

运行结果如下:

hello world!

 

这篇关于raise NotImplementedError的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/688053

相关文章

python教程(八)之异常(2.引发异常raise)

#实际上,你可以通过语句引发异常,并能自定义异常类 #以此满足你对异常的特殊需求,尽管内置异常已经十分丰富 1.raise语句 raise Exception# Traceback (most recent call last):# File "e:/python项目/基础训练/8.异常-2.引发异常.py", line 4, in <module># raise Excep

使用raise语句抛出异常

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501 如果某个函数或方法可能会产生异常,但不想在当前函数或方法中处理这个异常,则可以使用raise语句在函数或方法中抛出异常。raise语句的语法格式如下: raise [Exceptio

python异常-- try-catch-else-finally 异常-- raise

1、捕获异常-- try-catch-else-finally: try:存在潜在的异常code放在try中,进行捕获。except Exception,err:捕捉异常名称和参数,并抛出异常处理信息。else:如果没有异常则执行else。finally:退出try语句后总会执行的code。 2、自己触发异常 raise raise语法格式如下: raise [Excepti

【LinuxC语言】信号相关函数——kill、raise、pause与alarm

文章目录 前言一、函数介绍1.1 kill() 函数1.2 raise() 函数1.3 pause() 函数1.4 alarm() 函数 总结 前言 在Linux环境下,信号是一种重要的进程间通信机制,用于处理异步事件和控制进程行为。除了使用signal函数来设置信号处理函数外,还有一些其他的信号相关函数,如kill、raise、pause和alarm,它们提供了更多的信号处

《UNIX环境高级编程》笔记--kill函数,raise函数,alarm函数,pause函数

1.kill函数和raise函数 kill函数将信号发送给进程或者进程组,raise函数则运行进程向自身发送信号。 #include <signal.h>int kill(pid_t pid,int signo);int raise(int signo);//若成功,则返回0,出错则返回-1.调用raise(signo);等价于调用kill(getpid(),signo);

用err.raise自定义错误信息

我想大多数的人在编写ASP程序的时候,都碰到过类似的错误信息: Error Number -> -2147467259 Error Source -> Microsoft OLE DB Provider for ODBC Drivers Error Desc -> [Microsoft][ODBC Driver Manager] Data source name not found and

python中raise_for_status方法的作用

文章目录 说明示例1:基本使用示例2:多种异常 说明 raise_for_status() 方法在 Python 的 requests 库中用于在发送 HTTP 请求后检查响应的状态码。如果响应的状态码表示请求未成功(即状态码不是 2xx),则该方法会抛出一个 HTTPError 异常。这允许你以一种更结构化的方式来处理请求失败的情况,而不是手动检查状态码。 当使用 requ

函数kill和函数raise(UNIX环境高级编程笔记)

kill函数将信号发送给进程或进程组。raise函数则允许进程向自身发送信号。 #include <signal.h>int kill(pid_t pid, int signo)int raise(int signo)      返回值:若成功,返回0;出错则返回-1   调用raise(signo)相当于kill(getpid(), signo);   kill函数的pid参数的4种不同

raise和abort

raise给自己发送信号 int raise(int sig); raise.c #include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <signal.h>#include <stdlib.h>int main(int argc,char * argv[]){printf("I will die\n")

xlrd 读取 xlsx文件 NotImplementedError: formatting_info=True not yet implemented

最近做脚本开发,主要是对excel文件的处理,尝试用openpyxl和xlrd两种方式。 xlrd读取速度优于openpyxl,对读取xlsx可能会出现版本不兼容的问题,它的功能没有openpyxl全面,大部分情况需要结合xlwt来使用。 如果只是读取,没有格式要求的话,建议使用xlrd。 如果是需要在原文件上修改的话,建议使用openpyxl。 使用xlrd 读取 xlsx文件 报错