单例模式和装饰器

  1. new方法实现单例模式
class Singleton(object):
    def __new__(cls,*args,**kwargs):
        if not hasattr(cls,'_instance'):
            cls._instance = super(Singleton,cls).__new__(cls,*args,**kwargs)
        return cls._instance
  1. 装饰器
from time import time
import datetime
def wrap(func):
    def timer(*args,**kwargs):
        t1 = time()
        temp_time = datetime.datetime.now()
        func()
        t2 = time()
        result = t2-t1
        start_time = temp_time.strftime('%c')
        print('the start time is %s' % start_time)
        print("the running time is %f seconds" % result)
    return timer

@wrap
def functions():
    for i in range(1000):
        print (i)

functions()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 使用__new__方法 class Singleton(object): def __new__(cls,...
    nine_9阅读 1,196评论 0 0
  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 9,153评论 0 14
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,385评论 19 139
  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 9,773评论 4 34
  • 为期三天两夜的全民书写名师训练营结束了。这三天我们过得既紧张又充实,当然也是收获满满的。但是我们深知这不是结束,是...
    全民书写小花阅读 1,326评论 0 0