一些常用的方法放到了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
defloadproperty
(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
notnone
and section in s:
value = myutil.cp.get(section, key)
else:
value = none
except exception, e:
# print e
value = none
# print value
return value
設計模式 四 單例模式
singleton pattern 單例模式 singleton pattern 確保某乙個類只有乙個例項,向整個系統提供這個唯一例項,這個類稱為單例類,它提供全域性訪問的方法。單例模式是一種物件建立型模式。單例模式是結構最簡單的設計模式一,在它的核心結構中只包含乙個被稱為單例類的特殊類。單例模式的...
設計模式(四) 單例模式
單例模式屬於物件建立性質的模式,用於產生乙個物件的具體例項,並且可以確保系統中乙個類只能產生乙個例項。public class singleton public static singleton getinstance public class lazysingleton private stati...
單例模式 單例模式
餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...