import abc class ConcreteSuperclass(object): pass class MinimalInterface(metaclass=abc.ABCMeta): @abc.abstractmethod def my_abstract_method(self): raise NotImplementedError() class UnexceptionalConcrete(ConcreteSuperclass, MinimalInterface): def __init__(self): super().__init__() def my_my_abstract_method(self): return None class ExceptionalConcrete(Exception, MinimalInterface): def __init__(self): super().__init__() def my_my_abstract_method(self): return None my_exceptional_concrete = ExceptionalConcrete() my_unexceptional_concrete = UnexceptionalConcrete()