python装饰器

本文通过一个具体的Python函数示例解释了装饰器的概念及其工作原理。装饰器是一种特殊类型的函数,可以修改其他函数的功能或行为,而无需更改其源代码。文章详细介绍了如何定义和使用装饰器,并展示了使用装饰器语法糖简化装饰过程的方法。
# print("hello world")
def old_fun():
    return 99

def fun(func):
    a= 1#内部函数之外,外部函数里的变量
    def inner():#内部函数
        # b=a+1  #内部表达式用到了外部的a
        old_num=func()+a
        return old_num
    return inner   #执行外部函数完了,返回inner,inner里没有a

old_fun=fun(old_fun)

print(old_fun())
#既然已经返回了inner,他就是一个普通的函数,事实上他不普通,
# new_fun函数相当于inner函数,但是inner函数里没有a。
#现象是,inner函数能找到a。

理解装饰器的一点浅见,python3提供了装饰器的语法,如下

@fun
def old_fun():
    return 99

不需要我们再使用这样的形式
old_fun=fun(old_fun)

@装饰器函数名
被装饰函数

上面的格式,必须紧挨着的两行
被装饰函数,要在装饰器函数的下面,如果在装饰器函数上面会报错

tu

装饰器函数 is not defined

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值