四、单例模式

一些常用的方法放到了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

转载于:https://my.oschina.net/sshen11111/blog/1525554

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值