0
点赞
收藏
分享

微信扫一扫

通过__new__实现单实例

前程有光 2022-05-31 阅读 39

from threading import Lock
class myClass(object):
    myLock=Lock()
    flag=None
    def __init__(self,name):
        self.n=name
        print("aiay",name)
    def __new__(cls, *args,**kwargs):
        if cls.flag:
            return cls.flag
        else:
            with cls.myLock:
                if cls.flag ==None:
cls.flag=super().__new__(cls)
                return cls.flag
if __name__=='__main__':
    try:
        sdf=myClass('abee')
        print(sdf.n) #abee
        sdf1=myClass('eee')
        print(sdf is sdf1)#True
        print(sdf.n)# eee
    except:
        traceback.print_exc()

 

 通过__new__实现单实例_Java

举报

相关推荐

0 条评论