Python_函数式编程(装饰器深入剖析)

概念装饰器来自Decorator的直译。什么叫装饰,就是装点、提供一些额外的功能。在python中的装饰器则是提供了一些额外的功能。装饰器本质上是一个Python函数(其实就是闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器用于有以下场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。

6增加参数处理,可以装饰任意多个参数的函数

装饰器本质上是一个Python函数(其实就是闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器用于有以下场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。

wraps装饰器一个函数不止有他的执行语句,还有着__name__(函数名),doc(说明文档)等属性,我们之前的例子会导致这些属性改变。functool.wraps可以将原函数对象的指定属性赋值给包装函数对象,默认有module、name、doc,或者通过参数选择。

内置装饰器我们在面向对象学习时,学习过三种装饰器:property、staticmethod、classmethod。property装饰器property装饰器用于类中的函数,使得我们可以像访问属性一样来获取一个函数的返回值。

【示例】prperty装饰器的使用

classmethod装饰器classmethod这个方法是一个类方法。该方法无需实例化,没有self参数。相对于staticmethod的区别在于它会接收一个指向类本身的cls参数。

【示例】classmethod装饰器

相关推荐
AI_56782 小时前
Selenium+Python可通过 元素定位→操作模拟→断言验证 三步实现Web自动化测试
服务器·人工智能·python
蒜香拿铁2 小时前
【第三章】python算数运算符
python
52Hz1184 小时前
力扣73.矩阵置零、54.螺旋矩阵、48.旋转图像
python·算法·leetcode·矩阵
weixin_462446235 小时前
Python 使用 openpyxl 从 URL 读取 Excel 并获取 Sheet 及单元格样式信息
python·excel·openpyxl
毕设源码-钟学长5 小时前
【开题答辩全过程】以 基于Python的健康食谱规划系统的设计与实现为例,包含答辩的问题和答案
开发语言·python
百***78756 小时前
Grok-4.1技术深度解析:双版本架构突破与Python API快速集成指南
大数据·python·架构
2501_942191777 小时前
基于YOLO11-HSFPN的数字检测与识别模型实现详解
python
Mo_YuO.o7 小时前
git的安装以及本地仓库的创建
git·gitee·github
忧郁的橙子.7 小时前
26期_01_Pyhton基本语法
python
sunfove7 小时前
实战篇:用 Python 徒手实现模拟退火算法解决 TSP 问题
开发语言·python·模拟退火算法