欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > python >内容正文

python

python单例模式数据库连接池-凯发k8官方网

发布时间:2024/10/8 python 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 python单例模式数据库连接池_python实现单例模式的四种方式 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
# 单例模式实现方式一:类方法import settings​class mysql:__instance=nonedef __init__(self, ip, port):self.ip = ipself.port = port​@classmethoddef from_conf(cls):if cls.__instance is none:cls.__instance=cls(settings.ip, settings.port)return cls.__instanceobj1=mysql.from_conf()obj2=mysql.from_conf()obj3=mysql.from_conf()# obj4=mysql('1.1.1.3',3302)print(obj1)print(obj2)print(obj3)# print(obj4)​# 单例模式实现方式二:装饰器import settings​def singleton(cls):_instance=cls(settings.ip,settings.port)def wrapper(*args,**kwargs):if len(args) !=0 or len(kwargs) !=0:obj=cls(*args,**kwargs)return objreturn _instancereturn wrapper​@singleton #mysql=singleton(mysql) #mysql=wrapperclass mysql:def __init__(self, ip, port):self.ip = ipself.port = port​obj1=mysql() obj2=mysql() obj3=mysql() obj4=mysql('1.1.1.3',3302) print(obj1)print(obj2)print(obj3)print(obj4)​# 单例模式实现方式三:通过元类:import settings​class mymeta(type):def __init__(self,class_name,class_bases,class_dic):#self=mysql这个类self.__instance=self(settings.ip,settings.port)​def __call__(self, *args, **kwargs):# self=mysql这个类if len(args) != 0 or len(kwargs) != 0:obj=self.__new__(self)self.__init__(obj,*args, **kwargs)return objelse:return self.__instance​class mysql(metaclass=mymeta): #mysql=mymeta(...)def __init__(self, ip, port):self.ip = ipself.port = port​​obj1=mysql()obj2=mysql()obj3=mysql()obj4=mysql('1.1.1.3',3302)print(obj1)print(obj2)print(obj3)print(obj4)# 单例模式实现方式四:模块导入:def f1():from singleton import instanceprint(instance)​def f2():from singleton import instance,mysqlprint(instance)obj=mysql('1.1.1.3',3302)print(obj)​f1()f2()

同步发布在小猿取经博客

小猿取经 - 博客园​www.cnblogs.com

总结

以上是凯发k8官方网为你收集整理的python单例模式数据库连接池_python实现单例模式的四种方式的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图