19 lines
540 B
Python
19 lines
540 B
Python
class Singleton(type):
|
|
"""
|
|
Singleton Metaclass.
|
|
|
|
Enforces any object using this metaclass to only create a single instance.
|
|
|
|
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
|