验证python3实现单例模式的几种方法
来源:互联网 发布:java封装snmp协议 编辑:程序博客网 时间:2024/06/06 11:38
下面的几种方法不是我原创的。看大神的帖子,自己敲出来验证下,写出来作为学习笔记记录下
第一种,修饰器方法
def deco1(func): """ 装饰器方法, :param func:被修饰函数 :return:返回计算结果 """ list1={} def _deco1(*args, **kwargs): if func not in list1: list1[func] = func(*args, **kwargs) return list1[func] return _deco1
可以用来修饰函数
@deco1def myfunc(): print("myfunc called.")myfunc()或者类
@deco1class MyClass2: def __init__(self): self.xx = 0 def getval(self): return self.xx def setval(self, val): self.xx = vala = MyClass2()a.setval(2)b = MyClass2()print("b=",b.getval())
第二种方法,元类方式。
class Singleton1(type): _inst = {} def __call__(self, *args, **kw): if self not in self._inst: self._inst[self] = super(Singleton1, self).__call__(*args, **kw) return self._inst[self]python3中的使用方式
class MyClass1(metaclass = Singleton1): def __init__(self): self.xx = 0 def getval(self): return self.xx def setval(self, val): self.xx = valpython2中的使用方式
class MyClass1:__metaclass__ = Singleton1 def __init__(self): self.xx = 0 def getval(self): return self.xx def setval(self, val): self.xx = val第三种方法,利用import只导入一次。python模块就是天然的单例模式。
class My_Singleton(object): def foo(self): passmy_singleton = My_Singleton()
#这样来使用from mysingleton import my_singletonmy_singleton.foo()
还有几种目前没搞太清楚。后面搞清楚了再补充。
0 0
- 验证python3实现单例模式的几种方法
- Python3之实现单例模式de几种方式
- IOS实现单例模式的几种实现方法
- IOS实现单例模式的几种实现方法
- 单例模式几种实现方法
- 单例模式几种实现方法
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- 关于单例模式的几种实现方法
- 单例设计模式的几种常见实现方法
- Java -- 单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- JAVA中整数类型数据溢出问题研究
- 开始写博客!
- 设计模式
- 题目541最强DE 战斗力
- 20170403-leetcode-349/50-Intersection of Two Arrays.py
- 验证python3实现单例模式的几种方法
- 安卓逆向系列教程 4.6 去广告
- Codeforces Round #369 (Div. 2) C. Coloring Trees —— DP
- 基于IB(Interactive Brokers)盈透证券的股票及期货行情获取讲解
- 【p1101-单词方阵】解题记录
- 如何自制微信小视频发朋友圈
- android listview
- Centos7 中安装haroopad
- Android沉浸式UI实现及原理