博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python装饰器见解笔记
阅读量:7015 次
发布时间:2019-06-28

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

def zsq(fun):    def zsq_n(*args,**kwargs)        print('这是装饰器需要运行内容')        r = fun(*args,**kwargs)        print('在被装饰函数执行完成下运行显示')                return r    return zsq_n@zsqdef a():    print('这是一个被装饰的函数')a()>>>这是装饰器需要运行内容>>>这是一个被装饰的函数>>>在被装饰函数执行完成下运行显示

装饰器执行操作的顺序和被装饰函数在装饰器内部位置决定


上面这一个是不需要装饰器参数就能执行那么需要参数的装饰器怎么写呢?

def zsq(装饰器形参date):    def zsq_n(fun):        def zsq_nn(*args,**kwargs)            print('这是装饰器参数',data)            print('这是装饰器需要运行内容')            r = fun(*args,**kwargs)            print('在被装饰函数执行完成下运行显示')                    return r        return zsq_nn    return zsq_n@zsq('2019.4.17')def a(x+y):    return x+ya(5,6)>>>这是装饰器参数2019.4.17>>>这是装饰器需要运行内容>>>11>>>在被装饰函数执行完成下运行显示

只不过是在装饰外部套一层皮.

注意当不需要装饰器参数时,@zsq,

需要时是@zsq(参数)


如果还看不动那么给个比方

def 大臣(太子名):    def 做皇帝的位置(太子的能力):        r = 太子执行的能力        返回太子的能力r(包装)    皇帝的能力@大臣def 太子名():    执行的太子能力

就像是一个国家皇帝挂了,太子无能为力,于是忠心的大臣扶持太子上位,一共组成皇帝的能力,

pass

 

 

>>>>>>>>>>>>>>>>>>>

 

转载于:https://www.cnblogs.com/zengxm/p/10726596.html

你可能感兴趣的文章
深入理解计算机系统11——网络编程
查看>>
为什么说甲骨文裁员也属无奈之举?
查看>>
LeetCode:Word Pattern
查看>>
重载模板的顺序
查看>>
keil 编译后 flash 和 ram 占用情况
查看>>
java Jsoup爬取静态网站
查看>>
css选择器
查看>>
emacs使用http代理打开
查看>>
IOException: Sharing violation on path *****
查看>>
redhat python笔试题
查看>>
Silverlig“.NET研究”ht 2.5D RPG游戏技巧与特效处理:(三)动态光影
查看>>
字符串
查看>>
Vue 项目中使用less
查看>>
2018-2019-1 20165303 《信息安全系统设计基础》第七周学习总结
查看>>
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)
查看>>
如何將CMOS影像以RGB16的方式存入SDRAM? (SOC) (DE2-70) (TRDB-D5M) (TRDB-LTM)
查看>>
中国程序员容易发音错误的单词
查看>>
Android通知的基本用法
查看>>
window平台如何搭建Mysql集群
查看>>
退出unity运行
查看>>