首页 > 编程语言 >【python高级】322-Python装饰器

【python高级】322-Python装饰器

时间:2024-12-18 12:57:05浏览次数:6  
标签:函数 python 322 Python fn print 装饰 def inner

闭包的作用就是为了编写装饰器
装饰器的本质就是一个闭包

装饰器定义

就是给已有函数增加额外功能的函数,它本质上就是一个闭包函数

装饰器的功能特点:
①不修改已有函数的源代码
②不修改已有函数的调用方式
③给已有函数增加额外的功能

闭包这么编程装饰器的?

装饰器的雏形(下面都是没有返回值的函数)

栗子1:

在发评论函数前加一个登录的功能

提出需求:在不改变源函数以及源函数调用方式的前提下,为其添加一个权限验证(请先登录)
不改变源函数、不改变原有调用方式、需要增加权限验证(额外功能)

定义一个装饰器:本质:闭包函数(①有嵌套②有引用③有返回),而且装饰器函数本身必须有一个fn参数,代表要装饰的函数名称,当我们调用装饰器的时候,系统会自动将要装饰函数的名称发给fn参数

def logging(fn):  # 一般都叫fn
	def inner():
		# 引用fn函数之前,增加额外功能
		print('这里是登录操作')
		# 引用局部变量fn
		fn()
	return inner

@logging  # 语法糖

标签:函数,python,322,Python,fn,print,装饰,def,inner
From: https://blog.csdn.net/qq_25177949/article/details/144558469

相关文章

  • 2024最详细Python、Pycharm安装教程来了!
    在开始安装Python之前,让我们先准备好以下内容:一台电脑(Windows、Mac或Linux系统)稳定的网络连接【安装包领取方式在文末!!】一、进入Python官网首页,下载Python选择Python3.10.5,下载64位的版本 二、下载完成后,进行安装1.双击Python-3.10.5-amd64.exe2.选择Custom......
  • Python 装饰器是什么
    Python中的装饰器是一种设计模式,用于在不修改原始函数代码的情况下,给函数添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数并返回一个新的函数。装饰器可以在不修改原始函数定义的情况下,增加函数的行为。装饰器的基本语法如下:```python@decoratordeffunction_to_......
  • Python城市管理执法软件系统(Pycharm Flask Django Vue mysql)
    文章目录项目介绍和开发技术介绍具体实现截图开发技术开发与测试:设计思路系统测试可行性分析核心代码部分展示文章目录/写作提纲参考源码/演示视频获取方式项目介绍和开发技术介绍pycharm毕业设计项目框架支持:flask/djangoPython版本:python3.7.7开发软件:PyCharm......
  • 【matplotlib 库画雷达图】你知道怎么用python画雷达图、蜘蛛网图?对于精度展示、模型
    【matplotlib库画雷达图】你知道怎么用python画雷达图、蜘蛛网图?对于精度展示、模型对比非常重要。附代码及解释。【matplotlib库画雷达图】你知道怎么用python画雷达图、蜘蛛网图?对于精度展示、模型对比非常重要。附代码及解释。文章目录【matplotlib库画雷达图】......
  • Python的系统之眼:sys库的奥秘
    文章目录Python的系统之眼:sys库的奥秘背景:为何sys库不可或缺?什么是sys库?如何安装sys库?5个简单的库函数使用方法5个场景使用代码说明3个常见bug及解决方案总结Python的系统之眼:sys库的奥秘背景:为何sys库不可或缺?在Python的世界里,sys库是一个不可或缺的标准库,它提......
  • 探索Python文本处理的瑞士军刀:re库
    文章目录探索Python文本处理的瑞士军刀:re库第一部分:背景介绍第二部分:`re`库是什么?第三部分:如何安装`re`库?第四部分:`re`库函数使用方法1.`re.search(pattern,string)`2.`re.match(pattern,string)`3.`re.findall(pattern,string)`4.`re.sub(pattern,repl,string)......
  • 探索数学之美,Python math库带你飞
    文章目录探索数学之美,Pythonmath库带你飞第一部分:背景介绍第二部分:`math`库是什么?第三部分:如何安装这个库?第四部分:5个简单的库函数使用方法1.计算绝对值2.计算平方根3.计算正弦值4.计算对数5.计算幂第五部分:5个场景使用代码说明1.计算三角形面积2.计算复利3.计......
  • 轻松上手!小白必看的Python Requests抓取<iframe>内容全攻略
    引言对于初学者来说,爬取网页内容是一项既有趣又具挑战性的任务。当你遇到网页中嵌入的<iframe>标签时,可能会感到困惑:如何用Python获取这些框架内的信息呢?别担心!本文将手把手教你使用requests库结合其他工具来实现这一目标。无论你是编程新手还是有一定经验的开发者,这篇文章都......
  • 【时间序列分析】肯德尔(Kendall)相关系数基础理论及python代码实现
    文章目录1.肯德尔(Kendall)相关系数定义2.什么是秩相关系数3.计算方法4.示例及代码实现4.1示例4.2python代码实现5.优缺点6.适用范围7.与斯皮尔曼相关系数比较8.思考8.1当变量中有重复值时肯德尔(Kendall)相关系数是如何计算的?1.肯德尔(Kendall)相关系数定义......
  • 不同操作系统中安装Python的详细步骤
    一、Windows系统下载Python安装程序访问Python官方网站(https://www.python.org/downloads/)。在网站上,你会看到不同版本的Python可供下载。通常,建议下载最新的稳定版本(如Python3.x系列)。对于大多数初学者和一般用途,Python3是合适的选择。找到适合Windows系统的安装文件,它......