Python实现单例模式的方式有哪些
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇"Python实现单例模式的方式有哪些"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2025年11月06日Python实现单例模式的方式有哪些
这篇"Python实现单例模式的方式有哪些"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Python实现单例模式的方式有哪些"文章吧。
简介:单例模式可以保证一个类仅有一个实例,并提供一个访问它的全局访问点。适用性于当类只能有一个实例而且客户可以从一个众所周知的访问点访问它,例如访问数据库、MQ等。
实现方式:
1、通过导入模块实现
2、通过装饰器实现
3、通过使用类实现
4、通过__new__ 方法实现
单例模块方式被导入的源码:singleton.py
# -*- coding: utf-8 -*-# time: 2022/5/17 10:31# file: singleton.py# author: tom# 公众号: 玩转测试开发class Singleton(object): def __init__(self, name): self.name = name def run(self): print(self.name)s = Singleton("Tom")主函数源码:
# -*- coding: utf-8 -*-# time: 2022/5/17 10:51# file: test_singleton.py# author: tom# 公众号: 玩转测试开发from singleton import s as s1from singleton import s as s2# Method One:通过导入模块实现def show_method_one(): """ :return: """ print(s1) print(s2) print(id(s1)) print(id(s2))show_method_one()# Method Two:通过装饰器实现def singleton(cls): # 创建一个字典用来保存类的实例对象 _instance = {} def _singleton(*args, **kwargs): # 先判断这个类有没有对象 if cls not in _instance: _instance[cls] = cls(*args, **kwargs) # 创建一个对象,并保存到字典当中 # 将实例对象返回 return _instance[cls] return _singleton@singletonclass Demo2(object): a = 1 def __init__(self, x=0): self.x = xa1 = Demo2(1)a2 = Demo2(2)print(id(a1))print(id(a2))# Method Three:通过使用类实现class Demo3(object): # 静态变量 _instance = None _flag = False def __new__(cls, *args, **kwargs): if cls._instance is None: cls._instance = super().__new__(cls) return cls._instance def __init__(self): if not Demo3._flag: Demo3._flag = Trueb1 = Demo3()b2 = Demo3()print(id(b1))print(id(b2))# Method Four:通过__new__ 方法实现class Demo4: def __new__(cls, *args, **kwargs): if not hasattr(cls, '_instance'): cls._instance = super(Demo4, cls).__new__(cls) return cls._instancec1 = Demo4()c2 = Demo4()print(id(c1))print(id(c2))运行结果:
以上就是关于"Python实现单例模式的方式有哪些"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
方式
内容
模式
实例
对象
模块
公众
字典
文章
方法
源码
知识
篇文章
utf-8
开发
测试
众所周知
价值
全局
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
各地健康码 服务器
服务器怎么装上材质包
安卓服务器搭建
软件开发设计假设
年公安机关网络安全执法检查
邬江兴网络安全书
发生网络安全事件应当怎么办
大连东软软件开发工资待遇
数据库课程设计会员管理
网络技术有运维安全
周村食品管理软件开发
网络安全法规定时间
珠海网络安全认证费用
网络安全知识考什么
网络安全工作制度
昆山兴霸网络技术
软件开发前做个样品
360下载软件开发
传奇架设总是卡在物品数据库加载
在某次针对数据库的信息安全
宁波金杰软件开发
常德市网络安全应急指挥中心
吉林软件开发服务标准
斯洛登事件对网络安全
戴尔服务器2012怎么部署
多媒体服务器 轻量级
2019年网络安全检查报告
税务网络安全研讨材料
怎么进入服务器主机
北京职业软件开发