在Python中禁止对象的空初始化

时间:2014-11-15 12:33:17

标签: python class constructor

我想在创建某个类的实例时强制使用特定数量的参数。从我所读的here,即使我宣布

class someClass:
    def __init__(self, arg1, arg2..):
        # whatever

仍然可以像这样实例化someClass:

a = someClass()

我是python的新手,所以我强制执行的唯一想法是重载一个空构造函数并在其中抛出异常。但我更喜欢在编译时强制执行它的东西。这可能吗?

1 个答案:

答案 0 :(得分:0)

正如您在尝试时所看到的那样,如果您的__init__方法具有必需的参数,那么您无法在不传递这些参数的情况下创建对象。但我会告诫你,强迫"你的调用者做某事可能会违背Python粒度。通常,Python的口号是,#34;记录您的API,然后让调用者执行调用者将要执行的操作。"