W3docs

Creating a singleton in Python

A singleton is a design pattern that allows you to ensure that a class has only one instance.

A singleton is a design pattern that allows you to ensure that a class has only one instance. Here's one way you can implement a singleton in Python:

Implement a singleton class in Python

class Singleton:
    _instance = None

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
        return cls._instance

To use this singleton class, you would simply need to call the __new__ method on the class, like this:

Make a singleton class and test it in Python

python— editable, runs on the server

This will create two objects, but they will both be references to the same instance of the Singleton class, because the __new__ method creates the instance only if it doesn't already exist.

Note that this implementation of the singleton pattern uses the __new__ method, which is a special method in Python that is called when an object is instantiated. The __new__ method is called before the __init__ method, and it is responsible for returning a new instance of the class. By overriding the __new__ method, we can customize the way that instances of the Singleton class are created.