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

相关推荐
PieroPc1 分钟前
一个基于Python Streamlit sqlite3 的销售单管理系统,提供商品管理、客户管理、销售单管理及打印,和应收对账单等功能
python·oracle·sqlite·streamlit
月下倩影时3 分钟前
视觉进阶篇—— PyTorch 安装
人工智能·pytorch·python
xcLeigh7 分钟前
Rust入门:基础语法应用
开发语言·rust·编程·教程·基础语法
ZHE|张恒12 分钟前
设计模式实战篇(一):彻底搞懂 Singleton 单例模式
单例模式·设计模式
Mr.wangh13 分钟前
单例模式&阻塞队列详解
java·开发语言·单例模式·多线程·阻塞队列
工业甲酰苯胺15 分钟前
TypeScript 中的单例模式
javascript·单例模式·typescript
nvd1121 分钟前
Lit.js 入门介绍:与 React 的对比
开发语言·javascript·react.js
张较瘦_43 分钟前
[论文阅读] 软件工程 | 解决Java项目痛点:DepUpdater如何平衡依赖升级的“快”与“稳”
java·开发语言·论文阅读
Valueyou241 小时前
论文阅读——CenterNet
论文阅读·python·opencv·目标检测·计算机视觉
孤狼warrior1 小时前
目前最新同花顺金融股市数据爬取 JS逆向+node.js补浏览器环境
javascript·爬虫·python·金融·node.js