Files
PyPattyrn/pypattyrn/creational/singleton.py
2016-09-10 22:06:11 -04:00

20 lines
654 B
Python

class Singleton(type):
"""
Singleton Metaclass.
Enforces any object using this metaclass to only create a single instance.
- External Usage documentation: U{https://github.com/tylerlaberge/PyPatterns/wiki/Creational-Pattern-Usage}
- External Singleton Pattern documentation: U{https://en.wikipedia.org/wiki/Singleton_pattern}
"""
__instance = None
def __call__(cls, *args, **kwargs):
"""
Override the __call__ method to make sure only one instance is created.
"""
if cls.__instance is None:
cls.__instance = type.__call__(cls, *args, **kwargs)
return cls.__instance