Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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/4/oop/2.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中的派生类调用基构造函数_Python_Oop - Fatal编程技术网

如何确保只从python中的派生类调用基构造函数

如何确保只从python中的派生类调用基构造函数,python,oop,Python,Oop,在面向对象编程术语中,如何在python中创建受保护的构造函数。只能由派生类调用而不能直接调用的基构造函数。快速回答:不能,因为单下划线表示受保护访问的约定不能用于构造函数。 如果您找到了一种在python中创建“私有”构造函数的方法,我希望您可以使用它来安排一个受保护可见性的解决方案。通常,如果您想要一个不可实例化的基类,那是因为它是一个带有抽象方法的抽象类,需要一个子类来继承基类并实现这些抽象方法。这会自动解决构造函数问题。如果没有这个禁令,那么禁止基类实例化的理由是什么?

在面向对象编程术语中,如何在python中创建受保护的构造函数。只能由派生类调用而不能直接调用的基构造函数。

快速回答:不能,因为单下划线表示受保护访问的约定不能用于构造函数。
如果您找到了一种在python中创建“私有”构造函数的方法,我希望您可以使用它来安排一个受保护可见性的解决方案。

通常,如果您想要一个不可实例化的基类,那是因为它是一个带有抽象方法的抽象类,需要一个子类来继承基类并实现这些抽象方法。这会自动解决构造函数问题。如果没有这个禁令,那么禁止基类实例化的理由是什么?