博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python笔记(五)装饰器函数
阅读量:6823 次
发布时间:2019-06-26

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

装饰器函数

装饰器的本质:一个闭包函数

装饰器的功能:在不修改原函数及其调用方式的情况下对原函数的功能镜像扩展

装饰器的原则:对扩展开放,对修改封闭

装饰器的固定格式

1 def wrapper(func): 2     def inner(*args,**kwargs) 3         '''执行函数前要做的内容'''           4         ret = func(*args,**kwargs) 5         '''执行函数后要做的内容''' 6         return ret 7     return inner 8 #以上为装饰器的固定格式 9 @wrapper  # get=wrapper(get)=inner 语法糖10 def get()11     pass

带参数的装饰器

1 def outer(flag): 2     def timer(func): 3         def inner(*args,**kwargs): 4             if flag: 5                 print('''执行函数之前要做的''') 6             re = func(*args,**kwargs) 7             if flag: 8                 print('''执行函数之后要做的''') 9             return re10         return inner11     return timer12 @outer(False)  # 套上一个新的函数即可13 def func():14     print(111)15 func()

多个装饰器装饰同一个函数

1 def wrapper1(func): 2     def inner(): 3         print('wrapper1 ,before func') 4         func() 5         print('wrapper1 ,after func') 6     return inner 7  8 def wrapper2(func): 9     def inner():10         print('wrapper2 ,before func')11         func()12         print('wrapper2 ,after func')13     return inner14 15 @wrapper216 @wrapper117 def f():18     print('in f')19 20 f()

 

转载于:https://www.cnblogs.com/zxq520921/p/9420487.html

你可能感兴趣的文章
div仿框架布局
查看>>
Windows 服务(附服务开发辅助工具)
查看>>
ScrollView反弹效果 仿小米私密短信效果
查看>>
Redis命令拾遗五(有序集合)
查看>>
防止WordPress利用xmlrpc.php进行暴力破解以及DDoS
查看>>
Rafy 框架 - 使用 SqlTree 查询
查看>>
Python进阶 学习笔记(一)
查看>>
电梯测试点有哪些?
查看>>
如何点击UIWebView上html链接不弹出复制粘贴
查看>>
HDU 2709 Sumsets(递推)
查看>>
spring属性注入DI
查看>>
ofo4.0时代展望移动物联网应用 让智慧生活“随意念而动”
查看>>
阿里巴巴到底是一家什么公司?
查看>>
理想生活没那么难
查看>>
程序员都用什么牌子电脑编程?国产电脑很强大啊!
查看>>
浙江查获5000余张假火车票 系跨省家族式作案网上交易
查看>>
单例模式
查看>>
287. Find the Duplicate Number
查看>>
将Android library开源到jcenter
查看>>
java线程池
查看>>