码迷,mamicode.com
首页 > 其他好文 > 详细

15 装饰器 开闭原则 代参装饰器 多个装饰器同一函数应用

时间:2019-01-02 17:19:26      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:rap   red   out   eval   执行函数   扩展   内容   合成   实参   

今日主要内容
关于函数的装饰器.
1. 装饰器(重点, 难点)
开闭原则:
对功能的扩展开放
对代码的修改是封闭

通用装饰器语法:

def wrapper(fn):
def inner(*args, **kwargs): # 聚合
在目标函数之前
ret = fn(*arg, **kwargs) # 打散
在目标函数之后
return ret
return inner

@wrapper
def func():
pass

func()

2. 同一个函数被多个装饰器装饰

@wrapper1
@wrapper2
@wrapper3
def func():
pass

1 2 3 func 3 2 1

3. 带参数的装饰器(难受)

def wrapper_out(参数):
def wrapper(fn):
def inner(*args, **kwargs): # 聚合
在目标函数之前
ret = fn(*arg, **kwargs) # 打散
在目标函数之后
return ret
return inner
return wrapper

@wrapper_out(实参) # 执行的时候. 先执行函数的调用然后使用返回值和前面的@组合成装饰器语法糖
def func():
pass

eval => 文件操作
装饰器
函数

1.开闭原则
2.装饰器
3.带有参数的装饰器
4.多个装饰器同一个函数
5.装饰器的应用

15 装饰器 开闭原则 代参装饰器 多个装饰器同一函数应用

标签:rap   red   out   eval   执行函数   扩展   内容   合成   实参   

原文地址:https://www.cnblogs.com/work14/p/10209203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!