[Add] metaclass of singleton

This commit is contained in:
vn.py 2019-06-13 16:56:44 +08:00
parent 6cfdeac8cb
commit b05eb7142e

View File

@ -445,3 +445,17 @@ def virtual(func: "callable"):
that can be (re)implemented by subclasses.
"""
return func
class Singleton(type):
"""
Metaclass for creating singleton object.
"""
_instances = {}
def __call__(cls, *args, **kwargs):
""""""
if cls not in cls._instances:
cls._instances[cls] = super(
Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]