Python实现单例模式的方式有哪些
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇"Python实现单例模式的方式有哪些"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
互联网科技工作委员会副主任毛军
新华互联网科技学校
互联网巨头反垄断金融科技
互联网中国科技
互联网 科技
远信互联网科技
互联网科技公司介绍
联恩商钥互联网科技有限公司
衡水科技产业互联网平台
现代科技和互联网有关系吗
哈尔滨屹滨互联网科技有限公司
米聚互联网科技南京有限公司排面
乌鲁木齐新华智原互联网科技学校
科技大学互联网
互联网科技资金流入
新氧科技和美国互联网有关系吗
互联网企业和网络科技有限公司
恒生科技互联网指数十大成分股
互联网科技快速发展优美句子
株洲百竞科技的互联网营销顾问
华服互联网科技怎么样
A股互联网金融科技公司
疫情对互联网科技公司影响
美国互联网科技巨头监管
科技互联网技术
奇酷互联网络科技
小马过河互联网科技
唐信互联网科技 大连
甘肃拓世互联网科技有限公司
中国科技创新与世界互联网大会