pytho 单例模式
2024-08-25 09:19:27
单例模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!!
(程序如果并发量大的话,内存里就会存在非常多功能上一模一样的对象。存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅创建一个,需要时都去调用)
# 单例模式 class Foo: __n = None def __init__(self):
self.name = "nick"
self.age = 18
self.job = "pythoner" @staticmethod
def dl():
if Foo.__n:
return Foo.__n
else:
Foo.__n = Foo()
return Foo.__n # 创建对象时不能再直接使用:obj = Foo(),而应该调用特殊的方法:obj = Foo.dl() 。 f1 = Foo.dl()
print(f1)
f2 =Foo.dl()
print(f2)
f3 =Foo.dl()
print(f3) # 运行结果
<__main__.Foo object at 0x0000000001142390>
<__main__.Foo object at 0x0000000001142390>
<__main__.Foo object at 0x0000000001142390>
def singleton(argv):
dic = {} def s(*args, **kwargs): if argv not in dic:
dic[argv] = argv(*args, **kwargs)
return dic[argv]
else:
return dic[argv] return s # 类上加单例装饰器
@singleton
class Foo:
pass @singleton
class Foo2:
pass
最新文章
- 悬浮TabBar的实现--此段代码来自网络
- css3之景深
- HDU-----(1083)Courses(最大匹配)
- selenium python (七)层级定位(二次定位)
- Tarjan 离线算法LCA
- uva 10887
- WebView 中重写javascript 常用函数
- iOS 身份证最后一位是X,输入17位后自动补全X(转)
- CentOS7 定时检测进程占用内存大小,执行重启进程操作(xjl456852原创)
- bootstrap-table 表头和内容对不齐解决办法
- MongoDB安全及身份认证
- 是用Epplus生成Excel 图表
- R语言数据集合并、数据增减、不等长合并
- 云主机和vps的区别
- [VS]VS2013中在一对大括号之间添加垂直虚线
- python configparse模块&;xml模块
- C# 异步示例代码
- MySQL关于根据日期查询数据的sql语句
- python3 访问百度返回压缩格式
- rest规范是什么?
热门文章
- Maven3.5.0安装与配置+Eclipse应用
- Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》
- 阅读<;Video Timing Controller>;笔记
- ArrayBlcokingQueue,LinkedBlockingQueue与Disruptor三种队列对比与分析
- DateGridView标题列头添加复选框
- Winfrom控件使用
- C# 生成时间戳
- JAVA中Integer类型变量比较问题
- C++11--智能指针shared_ptr,weak_ptr,unique_ptr <;memory>;
- 【模态窗口-Modeldialog】提交请求时禁止在新窗口打开页面的处理方法