python懒汉单例
时间: 2023-08-21 08:14:34 浏览: 93
Python设计模式之单例模式实例
5星 · 资源好评率100%
在Python中,懒汉单例是指在需要时才创建实例的单例模式。懒汉单例的实现可以通过装饰器或者元类来实现。
引用[1]中的装饰器实现了懒汉单例模式。装饰器singleton定义了一个内部函数_singleton,该函数在第一次调用时会创建一个实例,并将其保存在instances字典中。之后的调用都会返回这个实例。通过将装饰器应用于类MyFun,可以实现懒汉单例模式。
引用[2]中的示例展示了通过重写__new__方法实现懒汉单例模式。在Singleton类的__new__方法中,如果类没有_instance属性,则创建一个实例并将其赋值给_instance属性。之后的调用都会返回这个实例。这种实现方式可以避免在初始化时触发__init__方法。
引用[3]中的示例展示了通过元类实现懒汉单例模式。Singleton元类重写了__call__方法,在第一次调用时创建一个实例,并将其保存在__instance属性中。之后的调用都会返回这个实例。
总结来说,Python中可以通过装饰器、重写__new__方法或者使用元类来实现懒汉单例模式。具体选择哪种方式取决于个人偏好和具体的使用场景。
阅读全文