def outer(func): #定义装饰器
def inner(*args,**kwargs): #定义万能参数
print("log")
ret = func(*args,**kwargs) #调用outer的函数 ,万能参数
print("after")
return ret
return inner
@outer # @+函数名 -- 装饰器 ,功能 1.自动执行outer函数 并且将下边的函数名 f1当作参数传递 2.将outer函数返回值,重新赋值给f1
def f1(arg):
print(arg)
print("F1")
@outer
def f2(arg1,arg2):
print(arg1,arg2)
print("F2")
@outer
def f100(arg1,arg2,arg3):
print(arg1,arg2,arg3)
print("F100")
@outer
def f3():
print("F3")
#调用函数
f1("1test")
f2("2test","22")
f100("3test","33","44")
f3()