Python中函数装饰器

Python中的函数装饰器,是一个比较绕的地方,下面我总结了个人的一个对于函数装饰器的一个理解。希望对你有所帮助。函数装饰器:根据概念来说,就是以函数为一个参数的函数,调用之后返回一个函数。返回的函数可以与原来的函数一致,也可以与原来的函数有所差别,下面,我们就来看一个很基本的实例:
def outer(fun):
print(“this is a decoration”)
def inner():
print(fun)
return inner
@outer
def sum_list(list_1):
return sum(list_1)
上面函数是一个闭包,也就是我们所说的装饰器,此时,这个界面给我们的错觉是没有任何一个函数被调用,但是,你如果在IDE里面运行,你会发现有结果打印出来,是一句话:this is a decoration .没有错,装饰器在我们装饰的时候就已经运行了,此时,我们如果再次调用sum_list函数的话,就相当于在执行inner函数,因为外部装饰器的外层已经执行过了,而返回的是一个inner的函数,故现在经相当于把原来的函数 sum_list变成另外的一个函数了。当然,这个过程中,你还要明白,装饰器外层的函数执行的参数是被装饰的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值