您的当前位置:首页正文

Python设计模式之单例模式

2023-09-16 来源:步旅网
 在线学习好工作 http://www.maiziedu.com/

Python设计模式之单例模式

1.由于语言的特性不同,设计模式的实现方式和实现难度也会不同 2.有的模式已经在语言内置了,比如迭代器模式。 3.单例模式可以直接用模块级变量来实现

4.普通工厂模式可以直接通过传入“类名”作为参数实现

单例模式实例:

12_eg.py

class SingleClass:

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

sc = SingleClass()

def tsc():

print(sc.x) sc.x = 10 print(sc.x)

def tsc2(): print(sc.x) sc.x = 9 print(sc.x)

if __name__ == '__main__': tsc() tsc2()

程序的运行结果为:

12_egs.py

class Singleton:

def __new__(cls,*args,**kwargs):

if not hasattr(cls,'_sgl'):

cls._sgl = super().__new__(cls,*args,**kwargs) return cls._sgl

if __name__ == '__main__': sa = Singleton() sb = Singleton() print(id(sa)) print(id(sb))

程序的运行结果为:

通过传入“类名”作为参数实现:

12_eg2.py class Ab: a = 3

class Ac: a = 0

class MyFactory:

def get_instance(self,ins): return ins()

if __name__ == '__main__': mf = MyFactory()

print(type(mf.get_instance(Ab))) print(type(mf.get_instance(Ac)))

程序的运行结果为:

文章来源:麦子学院

原文链接:http://www.maiziedu.com/wiki/python/designpattern/

因篇幅问题不能全部显示,请点此查看更多更全内容