带多个参数的装饰器
一、带多个参数的装饰器
def outer(func): def inner(a): # 需要补充参数 print("before") ret = func(a) # 需要补充参数 print("after") return ret return inner def outer2(func): def inner(a,b): # 传2个参数 print("before") ret = func(a,b) # 需要2个补充参数 print("after") return ret return inner @outer def f1(args):# 带参数 print(args) return "FFFF" @outer2 def f2(args,args2): print(args,args2) return "FFFF" test = f2("fafafafafa","test1") print(test)
二、万能装饰器
def outer(func): def inner(*args,**kwargs): # 需要补充参数 print("before") ret = func(*args,**kwargs) # 需要补充参数 print("after") return ret return inner @outer def f1(args):# 带参数 print(args) return "FFFF" @outer def f2(args,args2): print(args,args2) return "FFFF" test = f2("fafafafafa","test1") print(test)
浙公网安备 33010602011771号