| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- # -*- coding: utf-8 -*-
- """
- -------------------------------------------------
- File Name: utilClass.py
- Description : tool class
- Author : JHao
- date: 2016/12/3
- -------------------------------------------------
- Change Activity:
- 2016/12/3: Class LazyProperty
- 2016/12/4: rewrite ConfigParser
- -------------------------------------------------
- """
- __author__ = 'JHao'
- class LazyProperty(object):
- """
- LazyProperty
- explain: http://www.spiderpy.cn/blog/5/
- """
- def __init__(self, func):
- self.func = func
- def __get__(self, instance, owner):
- if instance is None:
- return self
- else:
- value = self.func(instance)
- setattr(instance, self.func.__name__, value)
- return value
- from ConfigParser import ConfigParser
- class ConfigParse(ConfigParser):
- """
- rewrite ConfigParser, for support upper option
- """
- def __init__(self):
- ConfigParser.__init__(self)
- def optionxform(self, optionstr):
- return optionstr
- class Singleton(type):
- """
- Singleton Metaclass
- """
- _inst = {}
- def __call__(cls, *args, **kwargs):
- if cls not in cls._inst:
- cls._inst[cls] = super(Singleton, cls).__call__(*args)
- return cls._inst[cls]
|