有时,在一个类中,我想要 __init__,当传递给它时,例如错误的参数,不实例化对象。一个解决方案可能是引发异常(哪个?)。还有其他想法吗?
请您参考如下方法:
引发异常。构造函数与其调用者有契约。它 promise 从有效输入创建一个有效对象。如果它不能这样做,例如因为它的输入无效,它应该引发异常以指示它的失败。
如果 __init__() 成功退出,即没有引发异常,这意味着根据定义,对象已成功构造和初始化。
关于如何做到这一点的人为示例:
class Bacon:
def __init__(self, deliciousness=1000):
if deliciousness < 100:
raise InvalidArgumentException('Bacon is always delicous')
self.deliciousness = deliciousness
