raise NotImplementedError的使用感觉很类似于C#中虚函数的效果,它的意思是如果这个方法没有被子类重写,但是调用了,就会报错。
唯一的作用就是把这个异常内置进去,然后写父类方法的时候抛出这个异常,报错的时候比较容易看,最终为了方便调试bug。
'''
# class TestClassOne(object):
#
# def Test(self):
# raise NotImplementedError
#
# class TestClassTwo(TestClassOne):
#
# def Test2(self):
# print('hello world')
#
# a = TestClassTwo()
# a.Test()
# coding=utf-8
# class TestClassOne(object):
# def Test(self):
# raise NotImplementedError
#
# class TestClassThree(TestClassOne):
# def Test(self):
# print('hello world')
#
# b = TestClassThree()
# b.Test()
#
# import abc
#
#
# class MyAbstractClass(object):
#
# @abc.abstractmethod
# def my_method(self):
# print('hello world')
# pass
# T = MyAbstractClass()
# T.my_method()
class ClassDemo:
def test_demo(self):
raise NotImplementedError("test:代码从这里出现异常啦!请尽快修复!")
class ChildClass(ClassDemo):
pass
inst = ChildClass()
inst.test_demo()
输出结果:
Traceback (most recent call last):
File "ors.py", line 56, in <module>
inst.test_demo()
File "ors.py", line 49, in test_demo
raise NotImplementedError("test:代码从这里出现异常啦!请尽快修复!")
NotImplementedError: test:代码从这里出现异常啦!请尽快修复!