博客导语单例模式全局仅有一个实例重复实例化返回同一个对象。适用于日志工具、数据库连接池、全局配置类。整理面试全部5种手写方案对比线程安全、实现难度。一、模块导入单例生产首选最简单Python模块天然单例模块只会导入一次全局共享同一个对象无需手写代码线程绝对安全企业90%场景使用。二、__new__方法重写入门常用class Singleton: __instance None def __new__(cls, *args, **kwargs): if cls.__instance is None: cls.__instance super().__new__(cls) return cls.__instance # 多次实例化地址完全一致缺陷多线程高并发会出现重复实例线程不安全三、线程安全加锁版单例通过threading锁解决并发冲突适合多线程爬虫、接口服务四、装饰器实现单例通用装饰器任意类快速转为单例复用性最强五、元类metaclass实现单例底层最高级写法控制类创建过程难度最高面试压轴考点五类方案选型总结生产业务优先模块单例零BUG、最简单普通单例__new__写法单线程使用多线程加锁版单例通用复用装饰器单例面试作答元类单例