一、什么是单例模式
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。
当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。
二、用类装饰器实现单例模式
def single_deractor(cls):
__instance= {}
definner(*args,**kwargs):
ifclsnotin__instance:
__instance[cls] = cls(*args,**kwargs)
return__instance[cls]
return inner
@single_deractorclass Foo:
def__init__(self,name):
self.name = name
f1 = Foo('zs')
f2 = Foo('ls')print(f1.name,f2.name)print(f1isf2)
三、使用__new__
class Foo:
__instance= None
def__init__(self,name,age):
self.name = name
self.age = age
def__new__(cls, *args, **kwargs):
ifnotcls.__instance:
cls.__instance= object.__new__(cls)
returncls.__instancef1 = Foo('zs',12)
f2 = Foo('ls',13)print(f1.name,f2.name)print(f1isf2)
四、使用元类
待补充,研究中