单例模式元类

元类实现单例模式

复制代码
 1 #coding=utf8
 2 class Singleton(type):
 3     _instances = {}
 4 
 5     def __call__(cls, *args, **kwargs):
 6         if cls not in cls._instances:
 7             cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
 8         return cls._instances[cls]
 9 
10 
11 # Python2
12 class MyClass(object):
13     pass
14     __metaclass__ = Singleton
15 
16 # Python3
17 # class MyClass(metaclass=Singleton):
18 #    pass
19 
20 m1=MyClass()
21 
22 m2=MyClass()
23 
24 print id(m1),id(m2)
复制代码

 

posted @   北风之神0509  阅读(233)  评论(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 热点速览」
点击右上角即可分享
微信分享提示