在__init __()中不创建对象的最佳方法是什么

时间:2014-06-11 10:26:06

标签: python constructor init

有时候,在课堂上,我喜欢__init__,在转到它时,例如错误的参数,不要实例化对象。解决方案可能是引发异常(哪一个?)。还有其他想法吗?

1 个答案:

答案 0 :(得分:7)

引发异常。构造函数与其调用方有合约。它承诺从有效输入创建一个有效的对象。如果它不能这样做,例如因为它的输入无效,它应该引发一个异常以指示它的失败。

如果__init__()成功退出,即没有引发异常,则表示该对象已成功构建并初始化。

如何做到这一点的实例:

class Bacon:
    def __init__(self, deliciousness=1000):
        if deliciousness < 100:
            raise InvalidArgumentException('Bacon is always delicous')

        self.deliciousness = deliciousness
相关问题