Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中对象的suppress空初始化_Python_Class_Constructor - Fatal编程技术网

Python中对象的suppress空初始化

Python中对象的suppress空初始化,python,class,constructor,Python,Class,Constructor,我想在创建某个类的实例时强制使用特定数量的参数。从我读到的,即使我声明 class someClass: def __init__(self, arg1, arg2..): # whatever 仍然可以实例化这样的类: a = someClass() 我对python非常陌生,所以我唯一的想法就是重载一个空构造函数并在其中抛出一个异常。但我更喜欢在编译时强制执行它的东西。这可能吗?正如您在尝试时所看到的,如果您的\uuuu init\uuuu方法具有必需的参数,则在

我想在创建某个类的实例时强制使用特定数量的参数。从我读到的,即使我声明

class someClass:
    def __init__(self, arg1, arg2..):
        # whatever
仍然可以实例化这样的类:

a = someClass()

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

正如您在尝试时所看到的,如果您的
\uuuu init\uuuu
方法具有必需的参数,则在不传递这些参数的情况下无法创建对象。但我要提醒您,“强制”调用方做一些事情可能会违反Python的规则。通常,Python的口号是“记录您的API,然后让调用者做调用者要做的事情。”

它到底说了什么可以像这样初始化此类?首先尝试运行代码。(请注意,
self
是Python在调用方法时添加的一个特殊位置参数。)它不会运行,您会得到一个
TypeError
,而不传递所需的位置参数。只要我定义了一个_uuuu u,它就会自动强制执行我想要的?编辑:我试图运行它,但我得到了一个typeerror,因为我使用了继承,在那里有另一个错误。我现在让它工作了,它的行为和你们两个说的一样。我不好,有点过早地问。如果你把参数设置为可选的,你只能实例化而不传递任何参数<代码>定义初始化(self,arg1=None,…):。