python之路之面向对象3
2024-10-08 10:21:08
一、知识点拾遗
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
最新文章
- 我们为什么要学习Java
- net软件自动生成开发编程框架编程机器人
- ZK 代码自动提示
- zip函数
- XCode实用好用插件集锦
- 读书笔记—CLR via C#委托和attribute
- poj 2184(dp变形,进一步加深01背包)
- lua: Learning Official Doc notes
- Erlang cowboy 入门参考之现代Web的发展历史
- 摄像头ov2685中关于sensor id 设置的相关的寄存器地址
- Python:说说字典和散列表,散列冲突的解决原理
- Blob与Clob转字符串
- javascript 作用域详解
- 【转】Python之日志处理(logging模块)
- ubuntu-12.04.4-alternate-i386安装
- 【Alpha go】Day 3!
- Jquery属性练习
- document.domain 跨域问题[转]
- iOS - 组件化探究之私有库的创建
- git——本地项目上传到git