博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 装饰器进阶
阅读量:6830 次
发布时间:2019-06-26

本文共 1221 字,大约阅读时间需要 4 分钟。

装饰器的进阶

 带参数的装饰器

import timeFLAGE = Falsedef 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 innerdef wrapper2(func):    def inner(*args,**kwargs):        print('3333333')        ret = func(*args,**kwargs)        print('4444444')        return ret    return innerdef wrapper3(func):    def inner(*args,**kwargs):        print('5555555')        ret = func(*args,**kwargs)        print('6666666')        return ret    return inner@wrapper3@wrapper2@wrapper1def funs():    print('233')    return '666'print(funs())

转载于:https://www.cnblogs.com/GrandDarkness/p/8146012.html

你可能感兴趣的文章
android 屏幕适配原则
查看>>
plot sin 动态配置rc settings
查看>>
一次解决页面特效问题的排查记录
查看>>
Shopilex - 开源免费网店系统
查看>>
ubuntu14.04 安装搜狗输入法
查看>>
内省—beanutils工具包
查看>>
[WP8.1UI控件编程]SemanticZoom控件实现分组列表
查看>>
Cycling Label
查看>>
CreateFileMapping使用方法
查看>>
MySQL load data infile
查看>>
TCommThread -- 在delphi线程中实现消息循环
查看>>
Windows内核之线程的调度,优先级,亲缘性
查看>>
按键控制电机显示速度
查看>>
分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据
查看>>
怎样删除windows.old文件
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
线程同步中使用信号量AutoResetEvent
查看>>
软件架构学习小结
查看>>
hessian学习
查看>>
Lua 之 userdata
查看>>