python中单例模式的实现-通过闭包函数和魔术方法__new__实现单例模式
Posted 奔奔-武
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中单例模式的实现-通过闭包函数和魔术方法__new__实现单例模式相关的知识,希望对你有一定的参考价值。
1、通过闭包函数实现单例模式:
# 使用闭包函数实现单例 def single(cls, *args, **kwargs): instance = {} def get_instance(): if cls not in instance: instance[cls] = cls(*args, **kwargs) return instance[cls] return get_instance @single class Apple: pass a = Apple() b = Apple() print(id(a)) print(id(b))
2、通过python中魔术方法__new__实现单例模式:
class Single: def __new__(cls, *args, **kwargs): if not hasattr(cls, ‘_instance‘): cls._instance = super(Single, cls).__new__(cls) return cls._instance s1 = Single() s2 = Single() print(id(s1)) print(id(s2))
以上是关于python中单例模式的实现-通过闭包函数和魔术方法__new__实现单例模式的主要内容,如果未能解决你的问题,请参考以下文章
python Python中单例模式的线程安全实现。基于tornado.ioloop.IOLoop.instance()方法。