Python装饰器

本文深入探讨Python装饰器,包括闭包的概念、装饰器的定义、如何使用装饰器、带参数的装饰器以及基于类实现的装饰器。装饰器在日志记录、性能测试、事务处理等方面发挥重要作用,提供了一种优雅的方式来增强函数功能,而无需修改函数源代码。
摘要由CSDN通过智能技术生成

闭包

Python函数是支持嵌套的。如果在一个内部函数中对外部函数作用域(非全局作用域)的变量进行引用,那么内部函数就会被称为闭包。闭包需要满足如下3个条件:
1.存在于两个嵌套关系的函数中,并且闭包是内部函数;
2.内部函数引用了外部函数的变量(自由变量);
3.外部函数会把内部函数的函数名称返回。

示例:
在这里插入图片描述

装饰器的概念
1、装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。
2、装饰器是一个函数,它需要接收一个参数,该参数表示被修饰的函数。例如,有如下一个装饰器函数:

def w1(func):
   print(‘正在装饰’)
    def inner():
        print(‘正在验证权限’)
        return inner()
  • 装饰器是个嵌套函数
  • 内部函数是一个闭包。
  • 外部函数接收的是被修饰的函数(func)

3、通过在函数定义的前面添加@符号和装饰器名,实现装饰器对函数的包装。给f1函数加上装饰器,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值