首页 > 其他 > 详细

设计模式之单例模式

时间:2020-05-24 01:21:07      阅读:68      评论:0      收藏:0      [点我收藏+]
# 单例模式
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)

 

设计模式之单例模式

原文:https://www.cnblogs.com/loveprogramme/p/12945308.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!