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生成

相关推荐
qq_424098564 分钟前
如何在 Go 方法中正确修改切片类型
jvm·数据库·python
qq_334563555 分钟前
如何利用分区进行并行DML_开启会话并行针对不同分区同时执行更新
jvm·数据库·python
z4424753267 分钟前
如何高效进行堆叠分类器的超参数调优:解决 GridSearchCV 卡顿问题
jvm·数据库·python
2301_7751481510 分钟前
如何操作 XML 数据_XMLTYPE 与 EXTRACT 函数解析节点
jvm·数据库·python
2402_8548083711 分钟前
怎么利用Navicat进行调整备份文件压缩等级_详细配置与操作步骤
jvm·数据库·python
Ulyanov11 分钟前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio入门实战:智能登录系统开发
开发语言·python·qt·雷达电子对抗
pele11 分钟前
mysql如何使用INNER JOIN内连接_mysql等值连接实现方式
jvm·数据库·python
人道领域12 分钟前
深度揭秘:JDK 21 虚拟线程原理与性能调优实战
java·开发语言·python·jdk
maqr_11013 分钟前
uni-app怎么解决H5端跨域请求 uni-app生产环境代理配置【解决】
jvm·数据库·python
2501_9481142414 分钟前
大模型API调用成本优化的工程路径:星链4SAPI聚合网关的技术实践
大数据·开发语言·人工智能·架构·php