我将__new__()
在基类中重写,并且如果它是基类,则根本无法实例化。
class BaseClass(object):
def __new__(cls, *args, **kwargs):
if cls is BaseClass:
raise TypeError("base class may not be instantiated")
return object.__new__(cls, *args, **kwargs)
这样将关注点分开比将其包含进来要好一些__init__()
,并且“快速失败”。