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

    装饰器的进阶

     带参数的装饰器

    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_out(FLAGE)
    def funs():
        time.sleep(0.2)
        print('大家好呀大家好')
    @timmer_out(FLAGE)
    def func():
        time.sleep(0.2)
        print('新年好呀新年好')
    funs()
    func()

    多个装饰器装饰一个函数

    def wrapper1(func):
        def inner(*args,**kwargs):
            print('1111111')
            ret = func(*args,**kwargs)
            print('2222222')
            return ret
        return inner
    def wrapper2(func):
        def inner(*args,**kwargs):
            print('3333333')
            ret = func(*args,**kwargs)
            print('4444444')
            return ret
        return inner
    def wrapper3(func):
        def inner(*args,**kwargs):
            print('5555555')
            ret = func(*args,**kwargs)
            print('6666666')
            return ret
        return inner
    @wrapper3
    @wrapper2
    @wrapper1
    def funs():
        print('233')
        return '666'
    print(funs())
  • 相关阅读:
    洛谷P1057 传球游戏
    洛谷 CF937A Olympiad
    洛谷P4057 晨跑
    New blog
    DHTMLX系列组件的学习笔记
    javascript学习笔记
    typeof 使用介绍
    tomcat启动后ids页面无法访问
    快捷键accesskey
    jquery回调函数callback的使用
  • 原文地址:https://www.cnblogs.com/GrandDarkness/p/8146012.html
Copyright © 2011-2022 走看看