python 空对象模式_Python 单例模式(3种方式)
# 单例模式:
# 实现目的:实例化多次,得到的实例是同一个,就是同一个对象,同一个名称空间(更加节省空间)
####################################方式一:在类内部定义一个类方法#################################
import settings
class Mysql:
__instance=None #定义一个变量,来接收实例化对象,方便下面做判断
def __init__(self,ip,port):
self.ip=ip
self.port=port
#
@classmethod #做成类方法 #绑定给Mysql类去直接调用实例化
def from_conf(cls):
#目的是要调取mysql这个类通过从配置文件读取IP、端口参数,完成调用init方法,拿到一个实例化init方法的对象
# mysql(settings.IP,settings.PORT)
#如果是这样每次,实例化出的对象,都是不同的名称空间,但是数据是同一份
# return cls(settings.IP,settings.PORT) #cls(ip,port) 就是调用init方法
#演变最终版:思考可以统一定义一个初始变量__instance=None,将第一次实例的对象传给他,有每次外面再访问就直接
if cls.__instance is None:
cls.__instance=cls(settings.IP,settings.PORT)
return cls.__instance
#之前版本:
# p1=Mysql.from_conf()
# print(p1) #<__main__.mysql object at> #数据是同一份,但每次实例化,指向的都是不同的内存地址
# p2=Mysql.from_conf()
# print(p2) #<__main__.mysql object at>
#这样写就完美的实现了隔离:
#升级版本后,可以实现,访问存的东西一样的,可以指向同一个内存空间
obj=Mysql.from_conf()
print(obj.__dict__)
#也可以传入新的参数,另外新造一个名称空间
obj2=Mysql('3.3.3.3',8888)
print(obj2.__dict__)
python 空对象模式_Python 单例模式(3种方式)相关推荐
- python实现进程通信_Python通过4种方式实现进程数据通信
Python通过4种方式实现进程数据通信 发布时间:2020-10-10 20:46:27 来源:脚本之家 阅读:94 作者:我太难了008 python提供了4种方式来满足进程间的数据通信 1. 使 ...
- python 类对象转换json的三种方式
第一种 from datetime import datetime import json from typing import Anyclass Student:def __init__(self, ...
- Java进阶篇设计模式之十三 ---- 观察者模式和空对象模式
前言 在上一篇中我们学习了行为型模式的备忘录模式(Memento Pattern)和状态模式(Memento Pattern).本篇则来学习下行为型模式的最后两个模式,观察者模式(Observer P ...
- Java进阶篇设计模式之十三——观察者模式和空对象模式
简介 观察者模式又叫发布-订阅(Publish/Subscribe)模式.模型-视图(Model/View)模式.源-监听器(Source/Listener)模式或从属者(Dependents)模式. ...
- java观察者模式异步notify_Java进阶篇设计模式之十三 ---- 观察者模式和空对象模式...
前言 在上一篇中我们学习了行为型模式的备忘录模式(Memento Pattern)和状态模式(Memento Pattern).本篇则来学习下行为型模式的最后两个模式,观察者模式(Observer P ...
- 设计模式之空对象模式
空对象模式 空对象模式是通过实现一个默认的无意义对象来避免null值出现, 简单地说,就是为了避免在程序中出现null值判断而诞生的一种常用设计方法. 举个简单的例子, 一个听动物叫声的模拟程序: 动 ...
- php7 空对象,PHP设计模式之空对象模式(Null Object)代码实例大全(26)
目的 空对象模式不属于 GoF 设计模式,但是它作为一种经常出现的套路足以被视为设计模式.它具有如下优点: 客户端代码简单 可以减少报空指针异常的几率 测试用例不需要考虑太多条件 返回一个对象或 nu ...
- 设计模式のNullObjectPattern(空对象模式)----行为模式
一.产生背景 在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查.Null 对象不是检查空值,而是反应一个不做任何动作的关系.这样的 Null 对象也可 ...
- 设计模式笔记二十二:空对象模式
原文:http://www.runoob.com/design-pattern/ 少许个人理解,如有错误请指出.欢迎一起讨论. 在空对象模式(Null Object Pattern)中,一个空对象取代 ...
最新文章
- 电脑右键没有新建按钮解决办法
- Smali语法简单介绍
- eclipse总跳出password required的框解决办法
- RTP协议全解析(H264码流和PS流)(转)
- Stupid cat Doge (分形图)
- 快速排序以及荷兰国旗问题
- 招聘数据爬取、数据处理与可视化(v2--解析JS渲染页面)
- mysql配置ip和端口_连接(Connectivity)选项中,“TCP/IP”复选项选中表示启用TCP/IP网络协议,配置连接MySQL服务器的默认端口号为“3306”。_学小易找答案...
- MIMO信道容量仿真MATLAB,MIMO系统的信道容量分析 及Matlab仿真
- 随机生成数字字母组成的组合
- AM4379 EDMA相关总结
- 【PS】平面设计:如何旋转图片
- npm 安装 bin/npm: line 1: ../lib/node_modules/npm/bin/npm-cli.js: No such file or directory
- 第一单元 用python学习微积分(五) 隐函数微分法和逆函数导数(上)- 隐函数微分
- pkuseg对文件分词时报错
- java求质因数算法
- 【电力电子技术】电力电子器件:概述
- 无尽长廊(Gallery)
- 创龙TI TMS320C6678 DSP + Xilinx Kintex-7 FPGA的温度传感器、B2B连接器
- 【时间】Unix时间戳
热门文章
- 人本质要好,要善良,要真诚,有格局和胸怀,有能力,有眼光,能讲故事,能找到人,能搞到钱...
- C++ primer学习方法
- Python两个内置函数——locals 和globals
- redmine 2.2.x 修改文档附件的存放目录
- PowerShell收发TCP消息包
- ANDROID BITMAP内存限制OOM,OUT OF MEMORY
- Microsoft 的 OpenSource Licence
- 算法每日练习之判断完数
- Activiti7工作流基础
- 数据结构5: 链表(单链表)的基本操作及C语言实现