一:单例模式

  单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。

  通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例.

  常用例子:数据库连接串,只保存一个,或者kindediter等过滤类等。

二:单例模式实现

  方法1:

# -*- coding:utf-8 -*-
__author__ = 'shisanjun' class Foo(object):
instance=None def __init(self):
self.name="shisanjun" @classmethod
def get_intance(cls):
if Foo.instance:
return Foo.instance
else:
Foo.instance=Foo()
return Foo.instance def process(self):
return "" obj1=Foo.get_intance()
obj2=Foo.get_intance()
print(id(obj1),id(obj2))
#结果:44675872 44675872 一样

  方法2:通过__new__方法实现,__new__在__init__前先执行

# -*- coding:utf-8 -*-
__author__ = 'shisanjun' class Foo(object):
instance=None def __init(self):
self.name="shisanjun" def __new__(cls, *args, **kwargs):
if Foo.instance:
return Foo.instance
else:
Foo.instance=object.__new__(cls,*args,**kwargs)
return Foo.instance def process(self):
return "" obj1=Foo()
obj2=Foo()
print(id(obj1),id(obj2))
#结果:38187808 38187808 一样

37)django-单例模式的更多相关文章

  1. GJM : C#设计模式(1)——单例模式

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  2. 第六模块:WEB框架开发 第1章·Django框架开发1~50

    01-Django基础介绍 02-Web应用程序1 03-Web应用程序2 04-http请求协议1 05-http请求协议2 06-http协议之响应协议 07-wsgire模块1 08-wsgir ...

  3. 第一篇:开始进入 django 之旅

    文中所有示例代码的仓库地址:https://github.com/HelloGitHub-Team/HelloDjango-blog-tutorial 开发环境说明 本教程写作时开发环境的系统平台为 ...

  4. Django文件上传【单个/多个图片上传】

    准备工作 python:3.6.8 django:2.2.1 新建django项目 确定项目名称.使用的虚拟环境[当然这个也可以后期修改].app的名称 创建成功,选择在新的窗口中打开 图片上传 修改 ...

  5. Django总结篇

    1.0 简述http协议和常用请求头 http协议: ( 基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)) HTTP协议是Hyper Text Transfer Pro ...

  6. Django自学教程PDF高清电子书百度云网盘免费领取

    点击获取提取码:x3di 你一定可以学会,Django 很简单! <Django自学教程>的作者学习了全部的 Django英文的官方文档,觉得国内比较好的Django学习资源不多,所以决定 ...

  7. Django基础-001

    一.开发模式 MVC模式: model:数据库 view:前端展示 controller:逻辑控制MTV模式 model:数据库 view:逻辑控制 template:前端展示 二.Django介绍 ...

  8. [python]django rest framework写POST和GET接口

    版本声明 python3.6.5 Django-2.0.6 djangorestframework-3.8.2 mysqlclient-1.3.12 1.写一个登录接口,不多说,直接上代码 login ...

  9. Python 经典面试题汇总之框架篇

    前端和框架 1.谈谈你对http协议的认识 浏览器本质,socket客户端遵循Http协议 HTTP协议本质:通过\r\n分割的规范,请求响应之后断开链接 ==> 短连接.无状态 具体: Htt ...

  10. 315道python面试题(参考答案)

    第一部分 Python基础篇 1:为什么学习Python 家里有在这个IT圈子里面,也想让我接触这个圈子,然后给我建议学的Python, 然后自己通过百度和向有学过Python的同学了解了Python ...

随机推荐

  1. spring注解第04课 @Import

    1.beans package com.atguigu.bean; public class Blue { public Blue(){ System.out.println("blue.. ...

  2. From 192.168.25.133 icmp_seq=238 Destination Host Unreachable 虚拟机ping主机不通

    From 192.168.25.133 icmp_seq=238 Destination Host Unreachable 虚拟机ping主机不通,但是主机可以ping通虚拟机,虚拟机ping不通外网 ...

  3. mysql比较运算符和函数

    mysql> SELECT 15 BETWEEN 1 AND 22;+---------------------+| 15 BETWEEN 1 AND 22 |+---------------- ...

  4. Debian Security Advisory(Debian安全报告) DSA-4412-1 drupal7 security update

    Debian Security Advisory(Debian安全报告) DSA-4412-1 drupal7 security update Package:drupal7 CVE ID:暂无 Dr ...

  5. git 配置ssh key

    第一次生成 ssh key 进入ssh目录  cd ~/.ssh,再输入:ls ,查看文件,如果有.pub的文件,说明已有ssh key 如果没有, 则生成秘钥:ssh-keygen -t rsa - ...

  6. Vue中的双向数据绑定简单介绍

    1. 文本框绑定v-module <div id="app"> <input type="text" v-model="msg&qu ...

  7. ORM映射和路由系统

    ORM映射: OBJECT ====> 对象 RELATION ===> 联系 MODEL ===> 数据模型 安装pyMysql 安装flask-sqlAchemy 导入: fro ...

  8. computed,methods,watch

    加载顺序: 在官方文档中,强调了computed区别于method最重要的两点 computed是属性调用,而methods是函数调用 computed带有缓存功能,而methods不是 计算属性是基 ...

  9. QR 编码原理(三)

    一.日本汉字(KANJI)是两个字节表示的字符码,编码的方式是将其转换为13字节的二进制码制. 转换步骤为: 1.对于JIS值为8140(hex) 到9FFC(hex)之间字符: a)将待转换的JIS ...

  10. [转] 隐马尔可夫(HMM)、前/后向算法、Viterbi算法 再次总结

    最近工作需要优化LSTM-CRF经典模型中的维特比解码部分,发现对维特比一直是个模糊概念,没有get到本质,搜了一圈,发现一篇好文,mark 博主不让转载,mark个地址吧: https://blog ...