欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
python中@的用法
 
@是一个装饰器,针对函数,起调用传参的作用。
 
有修饰和被修饰的区别,@function作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义)。
 
代码1
 
结果1
 
It's funA
 
分析1
 
@funA 修饰函数定义def funC(),将funC()赋值给funA()的形参。
 
执行的时候由上而下,先定义funA、funB,然后运行funA(funC())。
 
此时desA=funC(),然后funA()输出‘It's funA'。
 
代码2
 
结果2
 
分析2
 
@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'。
 
代码3
 
结果3
 
分析3
 
同上,为了更直观地看参数传递,打印desA,其传的是funC()的地址,即desA现在为函数desA()。
 
执行desA()即执行funC(),desA=desA()=funC()。
 
代码4
 
结果4
 
分析4
 
上面将funC()作为参数传给funA,那么funA(funC())怎么传给funB()呢?打印desB,发现并没有参数传递。
 
是否可以理解为当‘装饰器' 修饰 ‘装饰器'时,仅是调用函数。
 
以上所述是小编给大家介绍的python中@的用法详解整合,希望对大家有所帮助

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64154.shtml