当前位置: 首页 > news >正文

装饰器(Decorators)的实现

1、Python 中的函数可以像普通变量一样当做参数传递给另外一个函数;

2、装饰器:不修改函数源码但是要实现给函数添加额外功能。python使用语法糖即@来实现装饰器。

3、装饰器的作用:

(1)抽离出大量函数中与函数功能本身无关的雷同代码并继续使用

(2)为函数添加额外功能

4、装饰器的使用场景:

缓冲装饰器、权限验证装饰器、计时装饰器、日志装饰器、路由装饰器、异常处理装饰器、错误重试装饰器。

5、装饰器有两种:函数装饰器与类装饰器。

6、函数装饰器详解

(1)函数装饰器装饰函数:

         假定有一个函数实现两个数的相加,a+b,但是为了对这两个数相加的结果进行加密,我们需要给函数添加额外的代码,但是我们通过装饰器去实现,要达到的效果是,不是直接返回a+b的结果,而是进行进一步处理。代码如下:     

        a、以上两段代码实现的功能是一样的,即装饰器@MethodDecoration相当于n=MethodDecoration(add_function)。

        b、函数装饰器装饰函数:编写一个函数,传入参数是函数名,返回wrapper(函数名)。该函数中固定内置wrapper()函数,wrapper()的参数即被装饰函数的参数,返回装饰后的返回值。

        c、调用函数装饰器装饰函数:以第二段代码为例:调用装饰函数返回变量n(该变量为函数名wrapper)。变量n实际是函数wrapper(a,b),所以通过传参调用wrapper(a,b)实现对add_function()的装饰。

函数装饰器装饰函数的模板:

(2)函数装饰器装饰类

7、类装饰器详解

参考文章:http://t.csdnimg.cn/wnH4D


http://www.mrgr.cn/news/14906.html

相关文章:

  • 基于RK3588+MCU智能清洁车应用解决方案
  • erlang学习:用OTP构建系统2,警报管理
  • CTF密码学小结
  • 面试题集锦:数据库
  • 在随机点实现凸包包围游戏地区
  • 电商模式的解析
  • 【Python机器学习】NLP词频背后的含义——从词频到主题得分
  • 2.3 阿里巴巴-背包问题
  • 跨链互通:Web3如何实现多链互操作性
  • 如何用Java SpringBoot+Vue打造摇滚乐鉴赏网站:从设计到实现全解析
  • helm学习第四篇-微服务组件的加入
  • 从“养老社区、居家健康”迈向“全生活场景”,保险+康养步入3.0时代!
  • centos基础设置
  • k8s探针详细学习笔记
  • MAX_VALUE 和 MAX_SAFE_INTEGER的区别及相关知识
  • vue-router4.2.5 useRouter源码解读
  • GAN Inversion(GAN 反演)
  • Spring Cloud全解析:网关之GateWay简介
  • 利用通义灵码实现我的第一次开源贡献
  • JVM垃圾回收器