python之路之面向对象3
一、知识点拾遗
1、多继承的易错点
二、设计模式
1、设计模式介绍
Gof设计模式
大话设计模式
2、单例模式
- 当所有实例中封装的数据相同时,使用单例模式
- 静态方法+静态字段
- 单例就是只有一个实例
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相关推荐
- python之路——初识面向对象
阅读目录 楔子 面向过程vs面向对象 初识面向对象 类的相关知识 对象的相关知识 对象之间的交互 类命名空间与对象.实例的命名空间 类的组合用法 初识面向对象小结 面向对象的三大特性 继承 多态 封装 ...
- 十一Python之路,Day6 - 面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你 ...
- python之路_面向对象
1 >>> dict #类型dict就是类dict 2 <class 'dict'> 3 >>> d=dict(name='egon') #实例化 4 ...
- Python之路【第五篇】:面向对象及相关
Python之路[第五篇]:面向对象及相关 Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance ...
- Python学习之路9☞面向对象的程序设计
Python学习之路9☞面向对象的程序设计 一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什 ...
- Python升级之路( Lv6 ) 面向对象基础
Python系列文章目录 第一章 Python 入门 第二章 Python基本概念 第三章 序列 第四章 控制语句 第五章 函数 第六章 面向对象基础 面向对象基础 Python系列文章目录 前言 一 ...
- python 之路,Day11 (下)- sqlalchemy ORM
python 之路,Day11 - sqlalchemy ORM 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 ...
- 【Python教程】python之路
转载:http://www.cnblogs.com/wupeiqi/articles/4938499.html 目录 Python之路[第一篇]:Python简介和入门 Python之路[第二篇]:P ...
- python之路——模块和包
一.模块 1.什么是模块? 常见的场景:一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用Python编 ...
最新文章
- Jenkins构建Maven聚合工程,指定构建子模块
- Hyper-V 2016 系列教程25 配置NFS 存储服务器
- linux下增加磁盘改变指定文件路径分区挂载点和迁移数据
- python3 join函数_Python3 join函数和os.path.join用法详解
- VUE2第五天学习---自定义指令
- maven整合struts: Compilation error org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
- 【OpenCV】图像的内存分配与释放以及复制图像
- 153.寻找旋转排序数组中的最小值
- Vs2013(VS2012,vs2011,vs2010)+opencv2.4.8配置
- 搭建Wpf框架(1) —— 管理系统-Wpf客户端框架2.0(OA,聊天,定时任务)
- 手机电话本 csv 转vcf (vCard) 格式,最简单的方法!
- 机器学习强化(数据清洗、实战理解)
- 鹏业安装算量软件功能按钮汇总(一)
- lingo入门教程之二 --- 集合运用
- linux泰语语言包,linux安装中文语言包(示例代码)
- 联想服务器如何修改硬盘模式,联想thinkpad如何修改硬盘模式为ahci
- 网箱补网水下机器人电控调试日志-驱动水下推进器-Day1
- 聚焦一带一路建设,助推装备工业发展—西部制博会3月15日即将启幕
- webstorm html代码提示设置,Webstorm设置代码提示
- Python在cmd下pip快速下载安装包的国内安装镜像
热门文章
- SAP QM MB56 报表没有结果之分析与对策
- 我眼里的几种失败的人生
- 23个CVPR 2020收录的新数据集,都在这里了!
- 除了网络搜索(NAS),AutoML对深度学习模型优化还有哪些贡献?
- 干货 |“NLP”与“语言学家”的那些事儿
- 超维计算理论可以让AI具有记忆和反应
- SAP VLPOD 报错 - Update control of movement type is incorrect (entry 107 X X E B _ E) - 之对策
- SAP MM已经转成PO的采购申请Item依旧可以被删除?
- 用泰勒级数来估计函数的近似值
- 人工智能浪潮下的语音交互——VUI设计(基础篇)