zoukankan      html  css  js  c++  java
  • Python_装饰器进阶_32

    #带参数的装饰器
    #500个函数
    import time
    FLAGE = True
    def timmer_out(flag):
        def timmer(func):
            def inner(*args,**kwargs):
                if flag:
                    start = time.time()
                    ret = func(*args,**kwargs)
                    end = time.time()
                    print(end-start)
                    return ret
                else:
                    ret = func(*args, **kwargs)
                    return ret
            return inner
        return timmer
    # timmer = timmer_out(FLAGE)    #timmer = timmer_out(FLAGE)
    #wahaha = timmer(wahaha)        #@timmer
    @timmer_out(FLAGE)    
    def wahaha():
        time.sleep(0.1)
        print('wahahahahahaha')
    
    @timmer_out(FLAGE)
    def erguotou():
        time.sleep(0.1)
        print('erguotoutoutou')
    
    wahaha()
    erguotou()
    #多个装饰器装饰一个函数
    def wrapper1(func):
        def inner1():
            print('wrapper1 ,before func')
            ret = func()
            print('wrapper1 ,after func')
            return ret
        return inner1
    
    def wrapper2(func):
        def inner2():
            print('wrapper2 ,before func')
            ret = func()
            print('wrapper2 ,after func')
            return ret
        return inner2
    
    def wrapper3(func):
        def inner3():
            print('wrapper3 ,before func')
            ret = func()
            print('wrapper3 ,after func')
            return ret
        return inner3
    
    @wrapper3
    @wrapper2
    @wrapper1
    def f():
        print('in f')
        return '哈哈哈'
    
    print(f())
    
    #记录用户的登录情况
    #计算这个函数的执行时间

     

  • 相关阅读:
    操作系统-微内核操作系统
    设备管理-虚设备与SPOOLING技术
    设备管理-数据传输控制方式
    文件管理-空闲存储空间的管理
    文件管理-索引文件结构
    Alpha冲刺8
    Alpha冲刺7
    Alpha冲刺6
    Alpha冲刺5
    Alpha冲刺4
  • 原文地址:https://www.cnblogs.com/LXL616/p/10667182.html
Copyright © 2011-2022 走看看