@是一个装饰器,针对函数和装饰器,起调用传参的作用,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义)。
def funA(desA):
print("It's funA")
print('------')
print(desA)
desA()
print('------')
return desA
def funB(desB):
print("It's funB")
return desB
@funB
@funA
def funC():
print("It's funC")
funC()
结果:
只要记住万能公式就行:引用装饰器等于将修饰的函数/类作为对象传给装饰器函数,最后返回一个函数/类
@funA
def funC():
print("It's funC")
#---------------
funC = funA(funC)
print(funC)
上面两个完全等价,结果相同:



