这段代码是什么意思?
class Singleton(object):
_instances = {}
def __new__(class_, *args, **kwargs):
if class_ not in class_._instances:
class_._instances[class_] = super(Singleton, class_).__new__(class_, *args, **kwargs) # noqa E501
return class_._instances[class_]
答案 0 :(得分:1)
这是用于创建Singleton类的父类。 Singleton模式意味着一个类只有一个实例。 (例如,None
是NoneType
类的唯一实例。)
这可以通过创建类到实例_instances
的映射来实现。它已覆盖默认的__new__
方法,以便每当有人尝试创建新实例时,它要么使用地图中的现有实例,要么将新实例存储在地图中。