-
*args, **kwargs来接受被修饰函数的不定长参数
-
在调用的时候,*,**来拆包
-
在调用原函数的地方写上return返回函数结果
def set_func(func):
print("---开始进行装饰")
def call_func(*args, **kwargs): # 1. *args, **kwargs来接受被修饰函数的不定长参数
print("---这是权限验证1----")
print("---这是权限验证2----")
# func(args, kwargs) # 不行,相当于传递了2个参数 :1个元组,1个字典
# 3.在调用原函数的地方写上return返回函数结果
return func(*args, **kwargs) # 拆包 # 2. 在调用的时候,*,**来拆包
return call_func
@set_func # 相当于 call_func = set_func(test1)
def test1(num, *args, **kwargs):
print("-----test1----%d" % num)
print("-----test1----", args)
print("-----test1----", kwargs)
return 'ok'
test1(100) # 相当于 call_func(100)
ret = test1(100) # 相当于 ret = call_func(100)
print(ret)