@是一个装饰器,针对函数,起调用传参的作用。
@function 作为一个装饰器,用来装饰紧跟着的函数。
def funA(desA):
print("It's funA")
def funB(desB):
print("It's funB")
@funB
@funA
def funC():
print("It's funC")
结果
It’s funA
It’s funB
分析
@funB 修饰装饰器@funA,@funA 修饰函数定义def funC(),将funC()赋值给funA()的形参,再将funA(funC())赋值给funB()。
执行的时候由上而下,先定义funA、funB,然后运行funB(funA(funC()))。
此时desA=funC(),然后funA()输出‘It’s funA’;desB=funA(funC()),然后funB()输出‘It’s funB’。