说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
NotImplementedError 是 Python 中的一个内置异常类,通常用于表示一个类或方法的子类没有实现所需的方法或功能。当一个方法在基类中被定义,但在子类中没有被重写时,通常会抛出 NotImplementedError 异常。这个异常的目的是提醒开发者,该方法需要在子类中被重新实现,以便使子类具有完整的功能。
简单的示例,演示了如何使用 NotImplementedError:
class Shape:
def area(self):
raise NotImplementedError("Subclasses must implement area() method")
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
# 创建一个 Shape 实例会引发 NotImplementedError
try:
shape = Shape()
shape.area()
except NotImplementedError as e:
print(e)
# 创建子类实例则可以正常调用 area() 方法
rectangle = Rectangle(5, 4)
print("Rectangle area:", rectangle.area())
circle = Circle(3)
print("Circle area:", circle.area())
输出:
'''
Subclasses must implement area() method
Rectangle area: 20
Circle area: 28.26
'''
上边的例子中,Shape 类定义了一个 area() 方法,但该方法没有实际的实现,因此它引发了 NotImplementedError。在子类 Rectangle 和 Circle 中,我们分别实现了 area() 方法,因此它们可以正常工作。
总之,NotImplementedError 通常在设计基类时用于提醒子类开发者需要实现特定的方法或功能。
exception NotImplementedError
此异常派生自 RuntimeError。 在用户自定义的基类中,抽象方法应当在其要求所派生类重写该方法,或是在其要求所开发的类提示具体实现尚待添加时引发此异常。
备注:它不应当用来表示一个运算符或方法根本不能被支持 -- 在此情况下应当让特定运算符 /
方法保持未定义,或者在子类中将其设为 None。
备注:NotImplementedError 和 NotImplemented 不能互换,尽管它们的名称和用途相似。有关何时使用的详细信息,请参阅 NotImplemented 。
通过 Python 的内置常量 链接了解 Python 常量 NotImplemented。
更新时间:April 12, 2024, 6:48 a.m. 标签:python 异常 实现