美文网首页
单例代码

单例代码

作者: MkTom | 来源:发表于2018-08-22 15:20 被阅读0次
    """
    单例模式 要实现 的最终效果:
    无论创建多少次对象 ( 类名() ),创建出来的对象,始终都只有一个,这些对象名都指向同一个内存地址
     King.__instance = object.__new__(cls)   # 每一次执行object.__new__(cls)都会返回一个新对象,所以,应该把第一次创建出来 的这个对象(的引用)保存起来,当第二次第三次...跑__new__的时候,返回的都是第一次创建时候保存着的那个对象
     
    """
    
    class King(object):
    
        __instance = None   # 用来存放第一次创建出来的这个对象,None表示 没有指向
        __isFirst = True
    
        def __new__(cls, name, age):
    
            if King.__instance == None:
                King.__instance = object.__new__(cls)
            return King.__instance
    
    
        def __init__(self, name, age):
    
    
            if King.__isFirst:
                self.name = name
                self.age = age
                King.__isFirst = False
    
    
    king01 = King("嬴政", 40)
    print(king01.name)
    
    king02 = King("秦始皇", 45)
    king03 = King("秦始皇02", 41)
    print(king01.name)
    print(king03.age)
    

    相关文章

      网友评论

          本文标题:单例代码

          本文链接:https://www.haomeiwen.com/subject/lokyiftx.html