文档章节

四、单例模式

ssshen
 ssshen
发布于 2017/08/29 14:55
字数 248
阅读 1
收藏 0

一些常用的方法放到了MyUtil类中,为了不造成创建多个MyUtil实例的情况,因此使用了单例模式
main.py

MyUtil(fileName=psettings.ROOT_DIR + os.sep + 'config' + os.sep + 'config.properties')

myutil.py

class MyUtil(object):
    '''
    单例,提供从配置文件获取信息,获取连接等基础方法
    '''
    fileName = ''
    cp = None
    __instance = None
    cnxpool = None 
    
    def __new__(cls, *args, **kwd):
        if MyUtil.__instance is None:
            MyUtil.__instance = object.__new__(cls, *args, **kwd)
        return MyUtil.__instance
    
    def __init__(self, fileName=None):
        if fileName is None:
                raise  Exception('%s配置文件没有找到' % fileName)
        MyUtil.fileName = fileName
        MyUtil.cp = ConfigParser()
        print '配置文件%s' % MyUtil.fileName
        MyUtil.cp.read(fileName)
        self.logger = logging.getLogger('myLogger.myutil.MyUtil')

    @classmethod
    def loadProperty(cls, section, key):
        '''
        从配置文件中获得key对应的值
        @param section: 节点名称
        @param key: 参数名
        @return: 得到的结果string类型,如果没有取得值返回None
        '''
        if MyUtil.cp is None:
            MyUtil.cp = ConfigParser()
            if MyUtil.fileName is None:
                raise  Exception('%s配置文件没有找到' % MyUtil.fileName)
            MyUtil.cp.readfp(codecs.open(MyUtil.fileName, "r", "utf-8-sig"))
            
        s = MyUtil.cp.sections()
        try:
            if s is not None and section in s:
                value = MyUtil.cp.get(section, key)
            else:
                value = None
        except Exception, e:
#             print e
            value = None

#         print value 
        return value

© 著作权归作者所有

ssshen
粉丝 2
博文 34
码字总数 12481
作品 0
海淀
程序员
私信 提问
【设计模式笔记】(十六)- 代理模式

一、简述 代理模式(Proxy Pattern),为其他对象提供一个代理,并由代理对象控制原有对象的引用;也称为委托模式。 其实代理模式无论是在日常开发还是设计模式中,基本随处可见,中介者模式中...

MrTrying
2018/06/24
0
0
EasyToLearnDesignPattern

简单上手设计模式 GITHUB:https://github.com/Fisher-Joe/EasyToLearnDesignPattern 本文旨在使用最简单的语言,最简单的代码让人学习设计模式(最起码是我) 说明: 本文的所有内容都是基于...

芝麻开门
04/19
0
0
设计模式已经陨落了?

你现在是坐在一个程序员旁边吗?如果是的话,那么在你读下面的段落之前,有一个简单的实验。让他们到一边去,问问他们两个问题并记录下答案。首先问他们“什么是设计模式?”然后再问“说出你...

oschina
2014/03/11
9.1K
69
PHP设计模式(一):简介及创建型模式

我们分三篇文章来总结一下设计模式在PHP中的应用,这是第一篇创建型模式。 一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使用、容易被他人理解的、可靠的代码设...

juhenj
2014/05/15
228
2
炒冷饭系列:设计模式 抽象工厂模式

炒冷饭系列:设计模式 抽象工厂模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 亲爱我,孝何难;亲恶我,孝方贤。 一、什么是抽象工厂模...

泥沙砖瓦浆木匠
2014/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

GitOps 初探

前言 GitOps 的概念最初来源于 Weaveworks 的联合创始人 Alexis 在 2017 年 8 月发表的一篇博客 GitOps - Operations by Pull Request。文章介绍了 Weaveworks 的工程师如何以 Git 作为事实的...

阿里云云栖社区
15分钟前
0
0
keytool生成密钥

生成JKS Java KeyStore文件 我们首先使用命令行工具keytool生成密钥 - 更具体地说.jks文件: keytool -genkeypair -alias mytest -keyalg RSA ...

Canaan_
18分钟前
0
0
【从入门到放弃-Java】并发编程-NIO使用

前言 上文【从入门到放弃-SpringBoot】SpringBoot源码分析-请求过程中我们了解到,tomcat接收、返回请求的过程都是基于NIO实现的。日常工作中有很多基于NIO的使用,我们知道NIO可以提高系统的...

阿里云官方博客
19分钟前
2
0
mysql 如何删除数据库中所有的表

SELECT concat('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE table_schema = 'mydb'; mydb换成你想删除的数据库的名字......

RobertZhou
20分钟前
1
0
pytorch各种版本下载

链接地址:https://pytorch.org/get-started/previous-versions/

云烟成雨forever
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部