美文网首页
python3 中的单例

python3 中的单例

作者: 承諾過往雲煙 | 来源:发表于2018-07-22 19:56 被阅读0次

    一、单例模式要点

    一 是某个类只能有一个实例

    二 是它必须自行创建这个实例

    三 是它必须自行向整个系统提供这个实例‘

    四 单例中无论创建几个对象,都是对同一个内存对象进行操作的

    单例模式 :确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。

    单例模式 简单代码及魔法方法

     class Test(object):
    
        __instance = None
    
        def __init__(self):  #初始化属性
            print("----init方法----")
    
        def __del__(self): #删除对象调用
            print("----del方法----")
    
        def __str__(self):   #打印对象调用,要有返回值
            print("----str方法----")
    
        def __new__(cls): #创建对象,并返回对象引用
            print("----new方法----")
            if cls.__instance == None:
                cls.__instance = object.__new__(cls)
            return cls.__instance
    
    test1 = Test()
    print(id(test1))
    
    test2 = Test()
    print(id(test2)) 
    
    # 实例化一个单例
    
    class Singleton(object):
    
        __instance = None
    
        __first_init = False
    
     
    
        def __new__(cls, age, name):
    
            if not cls.__instance:
    
                cls.__instance = object.__new__(cls)
    
            return cls.__instance
    
     
    
        def __init__(self, age, name):
    
            if not self.__first_init:
    
                self.age = age
    
                self.name = name
    
                Singleton.__first_init = True
    
     
    
     
    
    a = Singleton(18, "dongGe")
    
    b = Singleton(8, "dongGe")
    
     
    
    print(id(a))
    
    print(id(b))
    
     
    
     
    
    print(a.age)
    
    print(b.age)
    
     
    
    a.age = 19
    
    print(b.age)
    
    

    运行结果:

    ubuntu@ubuntu-VirtualBox:~/桌面/2_1805/13day$ python3 01-简书单例模式.py 140168837839672
    140168837839672
    18
    18
    19

    单例模式优点

    使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性

    相关文章

      网友评论

          本文标题:python3 中的单例

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