明白这段代码的含义吗?

时间:2019-11-25 18:33:51

标签: python-3.x

这段代码是什么意思?

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_]

1 个答案:

答案 0 :(得分:1)

这是用于创建Singleton类的父类。 Singleton模式意味着一个类只有一个实例。 (例如,NoneNoneType类的唯一实例。)

这可以通过创建类到实例_instances的映射来实现。它已覆盖默认的__new__方法,以便每当有人尝试创建新实例时,它要么使用地图中的现有实例,要么将新实例存储在地图中。