我有一个基类,其中定义了几个空方法。我希望在子类中强制要求/使这些方法的定义成为必须,并在初始化时如果它们没有被重写就使程序崩溃。
例如:
例如:
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
:
def number_of_edges(self):
raise(NotImplementedError)
在类实例化期间崩溃并检测缺少的实现可能是有益的。为什么这不是默认设置,是否可以实现?
name
属性;__init__
函数是用来在创建实例时从给定的参数中存储该属性的。 - Martijn Pieters