19 lines
504 B
Python
19 lines
504 B
Python
class Singleton(type):
|
|
_instances = {}
|
|
|
|
def __call__(cls, *args, **kwargs):
|
|
if cls not in cls._instances:
|
|
cls._instances[cls] = super().__call__(*args, **kwargs)
|
|
return cls._instances[cls]
|
|
|
|
@classmethod
|
|
def reset_instance(mcs, cls):
|
|
"""重置指定类的单例实例"""
|
|
if cls in mcs._instances:
|
|
del mcs._instances[cls]
|
|
|
|
@classmethod
|
|
def reset_all(mcs):
|
|
"""重置所有单例实例"""
|
|
mcs._instances.clear()
|