博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之路之面向对象3
阅读量:6332 次
发布时间:2019-06-22

本文共 2515 字,大约阅读时间需要 8 分钟。

一、知识点拾遗

  1、多继承的易错点

二、设计模式

1、设计模式介绍

   Gof设计模式

  大话设计模式

2、单例模式

  1. 当所有实例中封装的数据相同时,使用单例模式
  2. 静态方法+静态字段
  3. 单例就是只有一个实例

    a。创建单例模式应用场景和实例

      ①创建一个数据库连接池

1 class ConnectionPool 2      3     __instance=None 4      5     def__init__(self): 6         self.ip="1.1.1.1" 7         self.port=3307 8         self.pwd="567678"         9         self.username="minmin"10         self.conn_list=[1,2,3,4,5,6,7,8,9,10]11   12 13     @staticmethond14     def get_instance():15         if ConnectionPool.__instance:16             return ConnectionPool.__instance17         else:18             #/创建一个对象,并将对象赋值给静态字段__instance19             ConnectionPool.__instance=ConnectionPool()20             return ConnectionPool.__instance21 22      def get_coonection(self):23         #获取连接24           import random25           r =  random.randrange(1,11)26               return r27 28 29 obj1=ConnectPool.get_instance()30 print(obj1)31 obj2=ConnectPool.get_instance()32 print(obj2)33 obj3=ConnectPool.get_instance()34 print(obj3)
View Code

       ②创建web站点并应用单例模式

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3  4  5 form wsgiref.simple_server import make_server 6 import random 7 class ConnectionPool: 8  9 10     __instance = None11 12 def __init__(self):13     self.ip = "1.1.1.1"14     self.port=330715     self.pwd="567678"16     self.username="124"17     self.conn_list = [1, 2, 3, 4, 5, 6, 7, 8, 9,10]18 19 20 @staticmethod21 def  get_instance():22     if ConnectionPool.__instance:23         return ConnectionPool.__instance24     else:25 26          # 创建一个对象,并将对象赋值给静态字段__instance27         ConnectionPool.__instance = ConnectionPool()28         return ConnectionPool.__instance29 30 def get_connection(self):31             #获取连接32     r =  random.randrange(1,11)33     return r34 35 def index():36     p = ConnectionPool.get_instance()37     print(p)38     conn = ConnectionPool.get_connection()39     return "11111111111"+str(conn)40 41 def news():42     return "123124"43 def RunServer(environ,start_response):44     start_response(status='200 OK',headers=[('Content-Type','text/html')])45     url=environ['PATH_INFO']46     if url.endswith('index'):47         ret = index()48         return ret49     elif url.endswith('news'):50         ret = news()51         return ret52     else:53         return '404'54 55 if __name__=='__main__':56     httpd=make_server('', 8000, RunServer)57     print("Serving HTTP on port 8000.....")58     httpd.serve_forever()单例单例
code

 

 

      

 

    

 

 

  

 

转载于:https://www.cnblogs.com/minmin123/p/8707232.html

你可能感兴趣的文章
为运维人员插上腾飞更远的翅膀!
查看>>
Word 2003中编辑标记与格式标记大讨论
查看>>
从国内向海外转移域名经验谈
查看>>
浅谈apache与tomact的整合
查看>>
SQL Server vNext CTP1 on Linux
查看>>
1-为 Lync Server 2010 准备 Active Directory 域服务
查看>>
NetBackup下ORACLE恢复测试方案实例解析
查看>>
【有奖征文】“失业”程序员的苦辣酸甜
查看>>
IE9是如何被FireFox4超越全球市场份额的?
查看>>
linux bunzip2命令
查看>>
敏捷个人:通过实践TOGAF来思考如何学习并应用新的方法?
查看>>
Android系统的开机画面显示过程分析(6)
查看>>
vivo Hi-Fi+QQ音乐 数字音乐市场的一剂良方
查看>>
Cocos2d-x 3.2 异步动态加载 -- 保卫萝卜开发总结
查看>>
聚焦触宝反侵权事件:中国创业者用什么护航海外市场大门
查看>>
AOP技术基础
查看>>
Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析(2)
查看>>
无线802.11n 2.4G与5G性能测试
查看>>
子域名信息收集攻略
查看>>
[Android]开发数独游戏思路分析过程
查看>>