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