Is there a simple, elegant way to define singletons?

Jamie picture Jamie · Aug 28, 2008 · Viewed 298.9k times · Source

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

Answer

Staale picture Staale · Aug 28, 2008

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.