单例模式共享属性

通过共享属性达到单例模式

 

复制代码
# coding=utf8

class Borg(object):
    _state = {}
    def __new__(cls, *args, **kw):
        ob = super(Borg, cls).__new__(cls, *args, **kw)
        ob.__dict__ = cls._state
        return ob

    def __init__(self,x):
        self.x = x




b1 = Borg(1)
b2 = Borg(2)

print b1.x
print b2.x

print id(b1)
print id(b2)
复制代码

结果是

可以看到共享属性方式的单例模式,与前两篇的不一样,实例化多少次就有多少个对象产生,但每个对象的状态,也就是所有实例的属性都是保持一致的。

posted @   北风之神0509  阅读(363)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示