仅仅实现单利如下: class single(object): __instance = None def __init__(self,name): self.name = name def __new__(cls, *args, **kwargs): if cls.__instance is None: cls.__instance = object.__new__(cls) return cls.__instance return cls.__instance A1=single('aa') print(id(A1)) print(A1.name) A2=single('bb') print(id(A2)) print(A2.name)
实现单例且只初始化化一次 class single(object): __instance = None __flag=None def __init__(self,name): if self.__flag is None: self.name = name self.__flag = True def __new__(cls, *args, **kwargs): if cls.__instance is None: cls.__instance = object.__new__(cls) return cls.__instance return cls.__instance A1=single('aa') print(id(A1)) print(A1.name) A2=single('bb') print(id(A2)) print(A2.name)
运行结果如下图: