python: 一个线程安全的单例类

称之为单例类, 其实也是照搬Java/C++等强类型语言的概念,在python里实现起来总有怪怪的味道.
关乎设计模式,这里有往篇文章,有时间研读一下:
Design Patterns in Python
#! /usr/bin/env python
# -*- coding: utf-8 -*-

"""
$filename    : Logger.py
$Author      : [email protected]
"""

import threading
import time

from Configer import Configer

class Logger(object):
    __mutex = threading.Lock()
    __wf = None

    def __init__():
        pass

    #@staticmethod
    #def __open_file():
        #if not Logger.__wf:
            #Logger.__wf = open(Configer.log_file, "w+")

    #@staticmethod
    #def close():
        #if Logger.__wf:
            #Logger.__wf.close()

    @staticmethod
    def log(msg, flag=0):
        Logger.__mutex.acquire()
        _cur_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 
        try:
            print "%s " % _cur_time,
            print msg 
        except Exception, e:
            print "%s " % _cur_time,
            print "Logger's Exception-> ",
            print e
        Logger.__mutex.release()

你可能感兴趣的:(设计模式,C++,c,python,Gmail)