python装饰器详解

装饰器

储备知识1:*args和**kwargs

储备知识2:名称空间与作用域


储备知识3:函数对象


储备知识4:函数的嵌套定义


储备知识 5:闭包函数


喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦

1、什么是装饰器

  • 器指的是一个工具,大多数场景都是定义成函数
  • 装饰指的是为其他事物添加额外的东西点缀
  • 总结:装饰器指的是定义一个函数或者类,用来为其他函数或类添加额外的功能

2、为何要用装饰器

  • 开放封闭原则
    • 开放:指的是对拓展功能是开放的
    • 封闭:指的是对修改源代码是封闭的
    • 即在不修改源码及调用方式的前提下拓展功能

3、装饰器案例

无参装饰器实例

有参装饰器实例

为什么需要有参装饰器:

由于语法糖@的限制,装饰器只能由一个参数,并且该参数是用来接收被装饰对象的内存地址。

当wrapper还需要额外的参数时,此时就需要有参装饰器进行装饰。这里的有参指的是给wrapper的参数而不是原函数。

喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦

可以看出,所谓有参装饰器是在原装饰器上再进行一次闭包后通过语法糖对原装饰器进行传参。

同时使用多个装饰器时,装饰器的加载顺序为自下而上,而运行顺序为自上而下

喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦

相关文章

干货 | 一文讲清楚Python之装饰器

概念介绍装饰器(decorator),又称“装饰函数”,即一种返回值也是函数的函数,可以称之为“函数的函数”。其目的是在不对现有函数进行修改的情况下,实现额外的功能。最基本的理念来自于一种被称为“装饰...

Python修饰器,终极解释来了!

修饰器在本质上就是一个函数,可接收其他函数作为参数。接下来,让我们看看如何自定义一个修饰器#这个修饰器可在被修饰函数之前被执行 def xiushi1(func): print("定义...

Python 装饰器:如何改进代码的功能和可读性

什么是装饰器?用装饰器来扩展另一个函数的功能。通过使用装饰器,可以添加其他功能。为了定义装饰器,需要定义一个函数,该函数具有一个调用 wrapper 的函数和一个调用 func, 的参数,该参数是我们...

Python的装饰器还是不会?来看看这篇文章(建议收藏)

点赞、收藏、加关注,下次找我不迷路哈喽,各位 Python 爱好者们!今天咱们要一起来攻克 Python 里一个超实用却又让不少新手犯迷糊的知识点 —— 装饰器。别担心,全程用大白话,搭配例子,还有...

Python中自带的三个装饰器

说到装饰器,就不得不说python自带的三个装饰器:1、@property 将某函数,做为属性使用@property 修饰,就是将方法,变成一个属性来使用。2、@classmethod 修饰类的方式带...