今天跟大家聊下开发中比较常见的一种设计模式------>单例设计模式
废话不多说,直接上代码
class Singleton(object):
__instance=None
__first=True
def __init__(self,name,age):
if Singleton.__first:
self.name=name
self.age=age
Singleton.__first=False
def __new__(cls, *args, **kwargs):
if not cls.__instance:#这里的含义是:如果cls.__instance为None是真的,才执行if内部的代码,并且执行完返回cls.__instance
cls.__instance=object.__new__(cls)
return cls.__instance
s1=Singleton('张三',21)
s2=Singleton('李四',22)
s3=Singleton('王五',23)
print(s1.name,s2.name,s3.name)
执行的结果为:
张三,张三,张三
这里用一张图来解释这个过程
![](https://img-blog.csdnimg.cn/20190509001554158.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MDUzNTE5,size_16,color_FFFFFF,t_70)