• 设计模式之单例模式


    # 单例模式
    class Singleton(object):
        __instance = None
        __isFirstInit = True
        # 理解__new__是创建对象的
        def __new__(cls, *args, **kwargs):
            # if not cls.__instance:
            #     cls.__instance = super().__new__(cls, *args, **kwargs)
            # return cls.__instance
            if cls.__isFirstInit:
                cls.__instance = super().__new__(cls, *args, **kwargs)
                cls.__isFirstInit = False
            return cls.__instance = super().__new__(cls, *args, **kwargs)
    
    
        # 理解__init__是初始化对象,为对象绑定属性的
        def __init__(self, *args, **kwargs):
            self.name = "Will"
            self.age = 23
    
        def __str__(self):
            return f"Singleton({self.name},{self.age})"
    
    
    s1 = Singleton()
    s2 = Singleton()
    print(s1, s2)
    # Singleton(Will,23) Singleton(Will,23)
    print(id(s1), id(s2))
    # 1823388319984 1823388319984
    s2.name = "Smith"
    print(s1, s2)
    # Singleton(Smith,23) Singleton(Smith,23)
  • 相关阅读:
    html5 本地存储
    javascript 中的 this 关键字详解
    重绘和回流
    javascript 的预解释机制
    zepto.js 实现原理解析
    python3.6新特性
    python面试终极准备
    科大讯飞语音合成api
    智能儿童玩具
    MySQL与MongoDB
  • 原文地址:https://www.cnblogs.com/loveprogramme/p/12945308.html
Copyright © 2020-2023  润新知