一、知识点拾遗

  1、多继承的易错点

二、设计模式

1、设计模式介绍

  Gof设计模式

  大话设计模式

2、单例模式

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

    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的更多相关文章

  1. (转)Python之路,Day6 - 面向对象学习

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

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

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

  3. Python之路: 面向对象

    Python是一门面向对象的语言,所以在Python中创建一个类和对象是很容易的.接下来了解一下面像对象的一些基本特征. 面向对象技术简介 类(class):描述具有相同的属性和方法的对象的集合.定义 ...

  4. 转:Python之路,Day6 - 面向对象学习

    这篇文章写的不错,转来收了 转自:http://www.cnblogs.com/alex3714/articles/5188179.html   本节内容:   面向对象编程介绍 为什么要用面向对象进 ...

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

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

  6. python之路--初识面向对象

    一 . 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大 ...

  7. python之路----初识面向对象(二)

    类命名空间与对象.实例的命名空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量 动态属性就 ...

  8. Python之路:面向对象及相关

    其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object):     pass   obj = Foo()   isinstan ...

  9. python之路之面向对象

    一.编程 1.面向对象编程和函数式编程 a.面向对象编程之self(重点) b.面向对象的封装  c.继承 (1)继承的优先级 d.重载 e.多态  2.查看socketserver源码执行过程

随机推荐

  1. C# 工具类LogHelper

    一.创建一个WinForm的项目,并通过NuGet安装log4net. 二.创建LogHelper类以及log4net.config配置文件. 三.编写相关代码. 1.LogHelper类 using ...

  2. source、sh、./执行脚本对变量的影响

    shell脚本中的变量: local一般用于局部变量声明,多在在函数内部使用. shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. she ...

  3. 洛谷 P4708 画画

    题意 在所以置换下,本质不同的各个极大连通子图均含有欧拉闭迹的\(n\)阶图个数 做法 务必先做完这题再看此题解,因为会省略大部分分析了 仍是从边入手,隔外限制:各个点度数是偶数 某个因子内\((m= ...

  4. 【HTML】html5 canvas全屏烟花动画特效

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  5. php安装xdebug扩展,PHPStorm+XDebug单步调试

    (一)php安装xdebug扩展,PHPStorm+XDebug单步调试 (二)PHPStorm配置XDebug (三)PHPStorm使用XDebug调试 (四)PhpStorm+Xdebug配置单 ...

  6. ST表求区间最值

    #include<bits/stdc++.h> #define ll long long #define lowbit(x) x&-x using namespace std; ; ...

  7. Mapped Statements collection does not contain value for xxx

    这是我第二次遇到的这个问题了,总结下. 第一次的问题是 mybatis的sqlSessionFactory的mapperLocations,配置的是这个路径下的所有映射文件,但是我没写的没有在该路径下 ...

  8. AspxDashboardView 更新参数

    AspxDashboardView 更新参数 function SetThrendDashboardView() { console.log("就是这样被你征服"); var to ...

  9. PP: A multi-horizon quantile recurrent forecaster

    2017 NIPS, time series workshop traditional methods: ARIMA. Seq2Seq quantile forecast; RELATED WORK ...

  10. 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。”

    出现场景: From1中事件B绑定在事件A,事件A由工厂模式下的设备产生,当离开Form1时,设备中的事件A仍然会触发事件B,此时就会导致如上问题 原因(个人理解): 1.Form1已经被销毁了,但仍 ...