有时候,在课堂上,我喜欢__init__
,在转到它时,例如错误的参数,不要实例化对象。解决方案可能是引发异常(哪一个?)。还有其他想法吗?
答案 0 :(得分:7)
引发异常。构造函数与其调用方有合约。它承诺从有效输入创建一个有效的对象。如果它不能这样做,例如因为它的输入无效,它应该引发一个异常以指示它的失败。
如果__init__()
成功退出,即没有引发异常,则表示该对象已成功构建并初始化。
如何做到这一点的实例:
class Bacon:
def __init__(self, deliciousness=1000):
if deliciousness < 100:
raise InvalidArgumentException('Bacon is always delicous')
self.deliciousness = deliciousness