Python闭包和装饰器用法实例详解

6 篇文章 0 订阅
1 篇文章 0 订阅

1、 文章详解:

https://www.jb51.net/article/161754.htm

2、闭包的概念:

1、一个函数中定义了另一个函数
2、内部函数使用了外部函数的变量
(注意此时引用只是说调用,但是不能修改,如果想在内部函数中修改 外部函数的局部变量的话必须在内部函数中加nonlocal才可以修改)
3、返回内部函数的引用(即地址)

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

3、装饰器简介

不管是三层装饰器还是两层装饰器,都是最里面的一层传递的参数是待装饰函数的参数(即*args,**kwargs),然后倒数第二层的参数是待装饰的函数名参数(即func),如果是三层的,则最外层的参数是装饰器(@decorator)的传入的外部参数

wraps()
Python装饰器在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生变化),为了不影响,Python中functools包中提供了一个叫wraps的decorator来消除这样的副作用

两层装饰器:
在这里插入图片描述

三层装饰器:

在这里插入图片描述

4、装饰器功能

  1. 引入日志
  2. 函数执行时间统计
  3. 执行函数前预备处理
  4. 执行函数后清理功能
  5. 权限校验等场景
  6. 缓存
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值