def set_func(func):
print("装饰器开始装饰")
def call_func(*args,**kwargs):
print("开始执行额外功能")
#将传进来的变量拆包,并执行原始要添加装饰器的函数功能
func(*args,**kwargs)
#将添加完装饰器的函数引用,返回给原始函数,来执行
#装饰器功能+原始功能。
return call_func
#@set_func 相当于执行set_func函数了,然后将额外功能加在原始功能之前,然后整体执行函数
@set_func
def ceshi(num,*args,**kwargs):
print("原始功能")
print(num)
print(args)
print(kwargs)
ceshi(11, 22, 33, name="laowang", age=18)
*********************************结果****************************************
装饰器开始装饰
开始执行额外功能
原始功能
11
(22, 33)
{'name': 'laowang', 'age': 18}
PYTHON高级--函数装饰器(在不改动原始函数的基础上,在之前添加处理操作)
最新推荐文章于 2022-10-03 18:49:41 发布