python 进阶 单例模式

  • 当所有实例封装的数据都相同时
  • 只有一个实例
  • 静态方法 + 静态字段
    # 数据库连接的例子
    class ConnectionPool:
    
         __instance = None
    
         def __init__(self):
             self.ip = "198.162.1.1"
             self.port = 3306
             self.pwd =  "123456"
             self.usr =  "xxxx"
             # 去连接
             self.conn_list = [1,2,3,4,5,6,7,8,9,10] 
              
         @staticmethod
         def get_instance():
             if ConnectionPool.__instance:
                 return ConnectionPool.__instance
             else:
                 # 创建一个对象,并保存在__instance
                 ConnectionPool.__instance = ConnectionPool()
                 return ConnectionPool.__instance
    
         def get_connection(self):
             #获取连接
             import random 
             r = random.randrange(1, 11)
             return r
    
         obj1 = ConnectionPool.get_instance()
         print(obj1)
         obj2 = ConnectionPool.get_instance()
         print(obj2)
         p = obj1. get_connection()
         print(p)
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,148评论 2 16
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,244评论 1 118
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 8,216评论 0 9
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    伊森H阅读 8,248评论 0 15
  • 还没有想好怎么分手 却早已预谋一场邂逅 一年中只有四个季节 笑着安慰这不算太久 你那不经心的挥手 成了我一生的守候...
    范高阅读 1,328评论 0 0

友情链接更多精彩内容