python单例模式
1、使用__new__方法

class Single(object): _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super().__new__(cls, *args, **kwargs) return cls._instance def __init__(self): pass
2、函数装饰器

def single(cls): _instance = {} def inner(*args, **kw): if cls not in _instance: _instance[cls] = cls(*args, **kw) return _instance[cls] return inner @single class Cls(object): pass
3、import
python的模块是天然的单例模式

# singleton.py class Single(object): def __init__(self, name): self.name = name single = Single('Alice') # use from singleton import single print(single.name)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步