前期也学过装饰器的内容,总感觉到自己还是没掌握一样,闲来继续认真看了一下B站的一些大神的视频,突然有了自己的理解。
总的来讲装饰器是用来装饰函数的,一个完整的装饰器分为配置函数、装饰器(函数)、包装器函数,其中配置函数和包装器函数不是必须的,但是在特定环境下是必须的,下面分两块来解释:
一、什么是配置函数、装饰器(函数)、包装器函数看示例代码:
/
def dec(x):
def inner_dec(fun):
def wrapped(*args,**kwargs):
result = fun(*args,**kwargs) + x
return result
return wrapped
return inner_dec
@dec(8)
def writedata(x):
x = x + 1
return x
示例代码中dec函数就是配置函数、inner_dec是装饰器函数、wrapped是包装函数。
二、什么情况下必须要用到配置函数和包装器函数- 配置函数是用来给装饰器传参的,当然参数可以是多个。
- 包装器函数是给被装饰的函数传参的,也就是给示例代码的writedata传参的。
- 当然作为装饰器,装饰器本身的函数在任何情况下都是不能少的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)