Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

In Python, one can prevent a class from being directly instantiated by defining the __init__() method as a private method with a double underscore (__) prefix:

class MyClass:
    def __init__(self):
        raise NotImplementedError("Cannot directly instantiate this class")

This will raise an error if anyone attempts to directly create an instance of the class:

>>> my_instance = MyClass()
NotImplementedError: Cannot directly instantiate this class