python实现单例模式怎么写啊?

python实现单例模式是什么?我面试的时候有个面试官让我手写2个单例设计模式,我是个菜鸟不会写,结果挂了。现在就想知道单例设计模式到底是怎么一回事要怎么写啊?

开满天机
浏览 488回答 2
2回答

翻阅古今

这个网上有很多的,你可以搜一搜,单例设计模式很多面试官都会考的,最好是记住一两个,我下面写一个例子给你看一下使用__new__方法在__new__方法中把类实例绑定到类变量_instance上,如果cls._instance为None表示该类还没有实例化过,实例化该类并返回。如果cls_instance不为None表示该类已实例化,直接返回cls_instanceclass SingleTon(object):    def __new__(cls,*args,**kwargs):        if not hasattr(cls,'_instance'):            cls._instance = object.__new__(cls,*args,**kwargs)        return cls._instanceclass TestClass(SingleTon):    a = 1test1 = TestClass()test2 = TestClass()print test1.a,test2.atest1.a=2print test1.a,test2.aprint id(test1),id(test2)

绝地无双

使用装饰器,建立过实例的就放到instances里面,下次建立的时候先检查里面有没有def SingleTon(cls,*args,**kwargs):    instances = {}    print instances    def _singleton():        if cls not in instances:            instances[cls] = cls(*args,**kwargs)        print instances        return instances[cls]    return _singleton@SingleTonclass LastClass(object):    a = 1test1 = LastClass()print test1.atest2 = LastClass()print test2.a
打开App,查看更多内容
随时随地看视频慕课网APP