Python单例模式实现日志功能
1、打开python开发工具IDLE,新建‘Sin.py’文件,为方便理解先做一个函数装饰器,代码如下:def decr(fun): def addstr(ar): return 'hello'+fun(ar) return addstr@decrdef innerfun(s): return sprint (innerfun('world'))解释一下:innerfun是传入decr装饰器的函数,可以理解为函数指针fun,其参数传入的是decr内层函数addstr,最后得到的字符串就是addstr函数作用之后的了,在返回给innerfun函数

3、再创建一个‘SinCls.py’文件,编写单例模式装饰器,代码如下:def singlecls(cobj): _instance = {} def createCobj(): if cobj not in _instance: _instance[cobj] = cobj() return _instance[cobj] return createCobj解释一下_instance这个字典使用类的地址作为key,对象实例作为value。类的地址不变,第一次创建类的对象后,就不会再创建新的。

5、F5运行程序,打印出两个对象实例的地址,地址一致,说明同一实例。

7、正常的日志一般写在文件里,IO频繁这也是用单例模式的好处,这里关于日志的知识就不展开了。F5运行程序,警告信息输出到控制台
