python之路之面向对象3
一、知识点拾遗
1、多继承的易错点

二、设计模式
1、设计模式介绍
Gof设计模式
大话设计模式
2、单例模式
- 当所有实例中封装的数据相同时,使用单例模式
- 静态方法+静态字段
- 单例就是只有一个实例
a。创建单例模式应用场景和实例
①创建一个数据库连接池
class ConnectionPool
__instance=None
def__init__(self):
self.ip="1.1.1.1"
self.port=3307
self.pwd=""
self.username="minmin"
self.conn_list=[1,2,3,4,5,6,7,8,9,10]
@staticmethond
def get_instance():
if ConnectionPool.__instance:
return ConnectionPool.__instance
else:
#/创建一个对象,并将对象赋值给静态字段__instance
ConnectionPool.__instance=ConnectionPool()
return ConnectionPool.__instance
def get_coonection(self):
#获取连接
import random
r = random.randrange(1,11)
return r
obj1=ConnectPool.get_instance()
print(obj1)
obj2=ConnectPool.get_instance()
print(obj2)
obj3=ConnectPool.get_instance()
print(obj3)
②创建web站点并应用单例模式
#!/usr/bin/env python
# -*- coding: utf-8 -*- form wsgiref.simple_server import make_server
import random
class ConnectionPool: __instance = None def __init__(self):
self.ip = "1.1.1.1"
self.port=3307
self.pwd=""
self.username=""
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):
#获取连接
r = random.randrange(1,11)
return r def index():
p = ConnectionPool.get_instance()
print(p)
conn = ConnectionPool.get_connection()
return ""+str(conn) def news():
return ""
def RunServer(environ,start_response):
start_response(status='200 OK',headers=[('Content-Type','text/html')])
url=environ['PATH_INFO']
if url.endswith('index'):
ret = index()
return ret
elif url.endswith('news'):
ret = news()
return ret
else:
return '' if __name__=='__main__':
httpd=make_server('', 8000, RunServer)
print("Serving HTTP on port 8000.....")
httpd.serve_forever()单例单例
code
python之路之面向对象3的更多相关文章
- (转)Python之路,Day6 - 面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...
- Python之路,Day6 - 面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏 ...
- Python之路: 面向对象
Python是一门面向对象的语言,所以在Python中创建一个类和对象是很容易的.接下来了解一下面像对象的一些基本特征. 面向对象技术简介 类(class):描述具有相同的属性和方法的对象的集合.定义 ...
- 转:Python之路,Day6 - 面向对象学习
这篇文章写的不错,转来收了 转自:http://www.cnblogs.com/alex3714/articles/5188179.html 本节内容: 面向对象编程介绍 为什么要用面向对象进 ...
- 十一Python之路,Day6 - 面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战& ...
- python之路--初识面向对象
一 . 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大 ...
- python之路----初识面向对象(二)
类命名空间与对象.实例的命名空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量 动态属性就 ...
- Python之路:面向对象及相关
其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstan ...
- python之路之面向对象
一.编程 1.面向对象编程和函数式编程 a.面向对象编程之self(重点) b.面向对象的封装 c.继承 (1)继承的优先级 d.重载 e.多态 2.查看socketserver源码执行过程
随机推荐
- 优先级队列-堆-STL实现
#include <cstdio> #include <iostream> #include <queue> using namespace std; // 默认是 ...
- C#序列化与反序列化学习笔记
本笔记摘抄自:https://www.cnblogs.com/maitian-lf/p/3670570.html,记录一下学习过程以备后续查用. 序列化是把一个内存中的对象的信息转化成一个可以持久化保 ...
- 优先队列-UVA10603
#include<cstdio> #include<cstring> #include<queue> using namespace std; typedef st ...
- github的版本控制master和branch develop
一.git版本控制原理 master(主分支), develop(分支),虽然是主分支和分支,却是平级关系,develop可以理解为开发库,master为生产库. 本地版本:master, devel ...
- Mysql常见注入
Mysql显错注入 1.判断注入类型为字符型:http://219.153.49.228:43074/new_list.php?id=tingjigonggao' and 1=1 --+2.判断字段为 ...
- 你这是virus吧?
谁在我的vps上跑了这个?我的备份终于起一定作用了. GO declare @sql varchar(8000) while (select count(*) from sysobjects wher ...
- git flow开发分支管理模型
Git Flow 是什么 Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践.Git Flow是一套使用Git进行源代码管理时的一套行为规范和简化 ...
- POJ2226(二分图建图/最小点覆盖)
题意: 给定m*n的棋盘,有若干只咕咕.希望去掉一部分咕咕使得剩下的咕咕在上下左右四个方向越过咕咕槽的情况下都看不到咕咕. 思路: 建立一个二分图的方法有很多,这里采用xy二分. 假设没有咕咕槽的情况 ...
- CSS: inline、block和inline-block的区别
block 块级元素特点: 1.每个块级元素都从新的一行开始,并且其后的元素也另起一行.(很霸道,一个块级元素独占一行) 2.元素的高度.宽度.行高以及顶和底边距都可设置. 3.元素宽度在不设置的情况 ...
- Networking POJ - 1287 最小生成树板子题
#include<iostream> #include<algorithm> using namespace std; const int N=1e5; struct edge ...