zoukankan      html  css  js  c++  java
  • day 12

    装饰器 进阶

    
    #带参数的装饰器
    #500个函数
    # import time
    # FLAGE = False
    # 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_out(FLAGE)    #wahaha = timmer(wahaha)
    # 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())
    
    #记录用户的登录情况
    #计算这个函数的执行时间
    
    
    
  • 相关阅读:
    数据提交方式:post和get
    什么是SQL注入式攻击和如何防范?
    CSS3 @keyframes 规则
    php数据库连接及简单操作
    深入理解CSS过渡transition
    css 选择器
    利用border制作三角形原理
    iOS 8 自适应 Cell
    dSYM 文件分析工具
    iOS开发使用半透明模糊效果方法整理
  • 原文地址:https://www.cnblogs.com/xibanqiu/p/12358820.html
Copyright © 2011-2022 走看看