- 一般说到python实现单例模式,都会想到各种装饰器的途径来构造
- 装饰器途径构造单例模式参考文档:python装饰器
- 本文则记录了一种比较新颖的方式来实现单例模式
构建一个singleton模块
#singleton.py
class Singleton:
def __init__(self):
self.name = "i'm singleton"
instance = Singleton()
del Singleton # 把构造函数删除
调用上述模块,
import singleton
print(singleton.instance.name) # i'm singleton
instance = Singleton() # NameError: name 'Singleton' is not defined
小结
- Python在module中对类的构造函数进行del操作,来隐藏一个类的构造函数,从而实现单例
讨论
- 这个module实现单例的方法,对构造器来说也是线程安全的哦
- 突然想到类里的method想做到线程安全怎么搞,下次发个文章研究下