5、python设计模式之单例

来源:互联网 发布:mac怎么设置手机铃声 编辑:程序博客网 时间:2024/05/29 18:57
class Singleton:    _sgl = None    #    """    在创建实例化对象之前先判断该类是否已被实例化        如果没有实例化,则利用父类 __new__方法 进行实例化,        如果已经实例化,不再进行二次实例化,直接将已经实例化的对象返回    """    def __new__(cls, *args, **kwargs):        if cls._sgl is None:            cls._sgl = super(Singleton, cls).__new__(cls, *args, **kwargs)        return cls._sglclass MyClass(Singleton):    def __init__(self):        self.x = 18    def show(self):        print(self.x)# 测试if __name__ == '__main__':    sa = MyClass()    sb = MyClass()    print(id(sa),id(sb), sa == sb) # 39953408 39953408 True



原创粉丝点击