一、知识点拾遗

  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     @staticmethond
14     def get_instance():
15         if ConnectionPool.__instance:
16             return ConnectionPool.__instance
17         else:
18             #/创建一个对象,并将对象赋值给静态字段__instance
19             ConnectionPool.__instance=ConnectionPool()
20             return ConnectionPool.__instance
21
22      def get_coonection(self):
23         #获取连接
24           import random
25           r =  random.randrange(1,11)
26               return r
27
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 = None
11
12 def __init__(self):
13     self.ip = "1.1.1.1"
14     self.port=3307
15     self.pwd="567678"
16     self.username="124"
17     self.conn_list = [1, 2, 3, 4, 5, 6, 7, 8, 9,10]
18
19
20 @staticmethod
21 def  get_instance():
22     if ConnectionPool.__instance:
23         return ConnectionPool.__instance
24     else:
25
26          # 创建一个对象,并将对象赋值给静态字段__instance
27         ConnectionPool.__instance = ConnectionPool()
28         return ConnectionPool.__instance
29
30 def get_connection(self):
31             #获取连接
32     r =  random.randrange(1,11)
33     return r
34
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 ret
49     elif url.endswith('news'):
50         ret = news()
51         return ret
52     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

python之路之面向对象3相关推荐

  1. python之路——初识面向对象

    阅读目录 楔子 面向过程vs面向对象 初识面向对象 类的相关知识 对象的相关知识 对象之间的交互 类命名空间与对象.实例的命名空间 类的组合用法 初识面向对象小结 面向对象的三大特性 继承 多态 封装 ...

  2. 十一Python之路,Day6 - 面向对象学习

    本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你 ...

  3. python之路_面向对象

    1 >>> dict #类型dict就是类dict 2 <class 'dict'> 3 >>> d=dict(name='egon') #实例化 4 ...

  4. Python之路【第五篇】:面向对象及相关

    Python之路[第五篇]:面向对象及相关 Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance ...

  5. Python学习之路9☞面向对象的程序设计

    Python学习之路9☞面向对象的程序设计 一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什 ...

  6. Python升级之路( Lv6 ) 面向对象基础

    Python系列文章目录 第一章 Python 入门 第二章 Python基本概念 第三章 序列 第四章 控制语句 第五章 函数 第六章 面向对象基础 面向对象基础 Python系列文章目录 前言 一 ...

  7. python 之路,Day11 (下)- sqlalchemy ORM

    python 之路,Day11 - sqlalchemy ORM 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 ...

  8. 【Python教程】python之路

    转载:http://www.cnblogs.com/wupeiqi/articles/4938499.html 目录 Python之路[第一篇]:Python简介和入门 Python之路[第二篇]:P ...

  9. python之路——模块和包

    一.模块 1.什么是模块? 常见的场景:一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用Python编 ...

最新文章

  1. Jenkins构建Maven聚合工程,指定构建子模块
  2. Hyper-V 2016 系列教程25 配置NFS 存储服务器
  3. linux下增加磁盘改变指定文件路径分区挂载点和迁移数据
  4. python3 join函数_Python3 join函数和os.path.join用法详解
  5. VUE2第五天学习---自定义指令
  6. maven整合struts: Compilation error org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
  7. 【OpenCV】图像的内存分配与释放以及复制图像
  8. 153.寻找旋转排序数组中的最小值
  9. Vs2013(VS2012,vs2011,vs2010)+opencv2.4.8配置
  10. 搭建Wpf框架(1) —— 管理系统-Wpf客户端框架2.0(OA,聊天,定时任务)
  11. 手机电话本 csv 转vcf (vCard) 格式,最简单的方法!
  12. 机器学习强化(数据清洗、实战理解)
  13. 鹏业安装算量软件功能按钮汇总(一)
  14. lingo入门教程之二 --- 集合运用
  15. linux泰语语言包,linux安装中文语言包(示例代码)
  16. 联想服务器如何修改硬盘模式,联想thinkpad如何修改硬盘模式为ahci
  17. 网箱补网水下机器人电控调试日志-驱动水下推进器-Day1
  18. 聚焦一带一路建设,助推装备工业发展—西部制博会3月15日即将启幕
  19. webstorm html代码提示设置,Webstorm设置代码提示
  20. Python在cmd下pip快速下载安装包的国内安装镜像

热门文章

  1. SAP QM MB56 报表没有结果之分析与对策
  2. 我眼里的几种失败的人生
  3. 23个CVPR 2020收录的新数据集,都在这里了!
  4. 除了网络搜索(NAS),AutoML对深度学习模型优化还有哪些贡献?
  5. 干货 |“NLP”与“语言学家”的那些事儿
  6. 超维计算理论可以让AI具有记忆和反应
  7. SAP VLPOD 报错 - Update control of movement type is incorrect (entry 107 X X E B _ E) - 之对策
  8. SAP MM已经转成PO的采购申请Item依旧可以被删除?
  9. 用泰勒级数来估计函数的近似值
  10. 人工智能浪潮下的语音交互——VUI设计(基础篇)