python 中@ 的用法【转】

本文深入探讨了Python中装饰器的使用方法,详细解释了@符号的语法糖如何改变函数的行为,通过实例展示了装饰器的执行流程,即装饰器自下而上依次调用的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这只是我的个人理解: 

在Python的函数中偶尔会看到函数定义的上一行有@functionName的修饰,当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的函数的参数,然后将返回值赋值给下一行修饰的函数对象。 
比如: 
@a 
@b 
def c(): 
… 
python会按照自下而上的顺序把各自的函数结果作为下一个函数(上面的函数)的输入,也就是a(b(c()))

 
 
def funcA(A):
    print("function A")

def funcB(B):
    print(B(2))
    print("function B")

@funcA
@funcB
def func(c):
    print("function C")
    return c**2

================================Result==========================function C
4
function B
function A

则整个程序的执行过程就是funA(funB(funC))

 

转自

python 中@ 的用法 - 优快云博客 https://blog.youkuaiyun.com/u012759262/article/details/79749299

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值