python 装饰器

装饰器是以在不修改原有代码的情况下,为被装饰的对象增加新的功能或者附加限制条件或者帮助输出装饰器的语法是将@装饰器名,放在被装饰对象上面

def outer(func):  # 装饰函数
    def inner():
        print("认证成功!")
        result = func()
        print("日志添加成功")
        return result
    return inner


@outer
def f1():  # 被装饰函数
    print("业务接口......")


f1()

装饰器其实就是将要装饰的函数作为参数传给装饰器,在装饰内部返回一个函数 并赋值给原函数

 

f1=outer(f1)
f1()

执行顺序:1. 当运行到 @outer时 执行开始执行装饰器的语法规则。规则是:被装饰函数的名字会被当作函数形参传递给装饰函                             数。装饰函数执行它自己内部的代码后,会将它的返回值赋值给被装饰函数。原来f1函数被当作参数传递给了func,                         而f1这个函数名之后会指向inner函数。

                   2.执行f1())时 实际上是执行了 inner()。因为通过1步骤return inner  赋给了f1() ,而原来声明的f1函数 则在inner函数中赋                        给了result 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值