Search code examples
pythondesign-patternssingleton

Is there a simple, elegant way to define singletons?


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


Solution

  • 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.