Jamie Jamie - 1 month ago 9
Python Question

Is there a simple, elegant way to define singletons in Python?

There seem to be many ways to define singletons in Python. Is there a consensus opinion on Stack Overflow?

Answer

I don't really see the need, as a module with functions (and not a class) would serve well as a singleton. All its variables would be bound to the module, which could not be instantiated repeatedly anyway.

If you do wish to use a class, there is no way of creating private classes or private constructors in Python, so you can't protect against multiple instantiations, other than just via convention in use of your API. I would still just put methods in a module, and consider the module as the singleton.

Comments