python单例模式

设计模式:单例模式(Singleton Pattern)。单例模式确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。

python 复制代码
class Singleton:
    _instance = None

    def __new__(cls):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
            # 这里可以添加初始化代码
        return cls._instance

# 使用Singleton类
instance1 = Singleton()
instance2 = Singleton()

# instance1 和 instance2 是同一个实例
assert instance1 is instance2

在这个例子中:

cls指的是类Singleton本身。

super().new (cls)调用父类(在这个例子中是object类)的__new__方法来创建类Singleton的一个新实例。这是因为__new__是在创建实例之前被调用的特殊方法,它实际上负责创建实例。

cls._instance用于存储这个唯一的实例。如果cls._instance已经存在,即之前已经创建过实例,那么__new__方法将返回这个已存在的实例而不是创建一个新的实例。

通过以上方式,无论你尝试创建多少次Singleton类的实例,所有的变量都会指向同一个实例。这就是单例模式的核心特点。
以上示例由ChatGPT生成

相关推荐
IPdodo_12 小时前
Codex 总是 Reconnecting?从 401 到响应流中断的排查方法
python·requests
京和动物医院·总院12 小时前
2026年未央区宠物医院:如何挑选最适合您爱宠的健康守护者
大数据·人工智能·python
刘小八12 小时前
RAG 文档切分不是越细越好:选择 Chunk Size 与 Overlap
人工智能·python·语言模型
互联网中的一颗神经元12 小时前
小白python入门 - 23. Python 正则表达式的应用
python·正则表达式
雪碧透心凉_12 小时前
while 循环与循环嵌套
开发语言·python
初学者,亦行者12 小时前
利用pyecharts自动化绘制漏斗图保姆级教程
python·信息可视化·数据分析
乐观勇敢坚强的老彭12 小时前
信奥C++一维数组笔记
开发语言·c++·笔记
这就是佬们吗12 小时前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
卷无止境12 小时前
提升 Python 代码健壮性的方法大盘点
后端·python
asdzx6712 小时前
Python PDF 拆分实战指南:单页拆分与按需页码范围拆分
开发语言·python·pdf