6.装饰器
(1)闭包:函数里面嵌套函数
(2)装饰器应用场景:在执行函数之前或之后做某种操作
(3)装饰器调用:Python的语法糖:@装饰器函数名,用于定义函数之前
(4)装饰器特性:闭包结构,返回值为函数


(5)装饰器嵌套:有多个装饰器时从下到上调用,从上到下执行

(6)装饰器参数:原装饰器外层再加一层函数,用来接收装饰器参数

(7)装饰器常用函数:
a. functools.wraps(函数名):防止被装饰函数属性被改变(fun.__name__,fun.__doc__)




b. inspect.getcallargs(函数名,可变参数,关键字参数):被装饰函数实参类型不定时自动封装成字典.key值:形参,value值:实参


(8)总结:装饰器模板
a.
import functools
def #装饰器名称(fun):
@functools.wraps(fun)
def wrapper(*args, **kwargs):
# 函数执行前的操作
temp = fun(*args, **kwargs)
# 函数执行后的操作
return temp
return wrapper
b.
import functools
def 装饰器名称(fun):
@functools.wraps(fun)
def wrapper(*args, **kwargs):
if #条件判断:
temp = fun(*args, **kwargs)
return temp
else:
#报错
return wrapper
c.
import functools
def #装饰器名称(#装饰器参数):
def inner(fun):
@functools.wraps(fun)
def wrapper(*args, **kwargs):
# 函数执行前的操作
temp = fun(*args, **kwargs)
# 函数执行后的操作
return temp
return wrapper
return inner
本文深入探讨了Python装饰器的概念及其实现方式,包括闭包、装饰器语法糖、装饰器参数等高级特性,并介绍了如何使用装饰器进行函数的增强。

499

被折叠的 条评论
为什么被折叠?



