我有一个基类,它定义了几个空方法。我想强制/强制子类中这些方法的定义,并在初始化时使其崩溃,以防它们没有被重写。在
例如:
class Shape:
def __init__(self, name):
self.name = name
def number_of_edges(self):
pass # method HAS TO be overloaded in subclass
class Triangle(Shape):
def __init__(self, name):
super(Triangle, self).__init__()
def number_of_edges(self):
return 3
似乎Python
的方法是引发一个NotImplementedError
:
但是在类实例化过程中,尽早崩溃并检测到实现的缺乏可能是有益的。为什么这不是默认值,它能做到吗?在
使用^{} module 创建抽象基类。在
任何用^{} decorator 修饰的方法都将触发
^{pr2}$TypeError
异常:你可以使用Abstract基类
现在,如果Triangle类不重写
number_of_edges
方法,它将引发异常。在相关问题 更多 >
编程相关推荐