class singleton(object): instance=None @classmethod def __new__(cls, *args, **kwargs): if cls.instance is None:#申请内存,创建一个对对象,并把对象类型设为cls cls.instance=object.__new__(cls) return cls.instance def __init__(self,a,b): self.a=a self.b=b s1=singleton('hehe','heiheihie') s2=singleton('haha','fuck') print(s1 is s2) #不调用,会调用object中的new,如果重写了new方法,需要手动申请内存。
结果:True