news 2026/9/2 20:01:53

python装饰器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python装饰器

python装饰器

    • 装饰器示例代码
    • 装饰器应用示例
    • 实战应用示例

装饰器示例代码

def外func(被装饰func):""" 这是一个装饰器示例,展示如何使用中文命名函数和变量。 被装饰func: 这是将被装饰的函数 """def内func(*args,**kwargs):""" 内func 的 Docstring :param args: 一个星号 * 收集位置参数 :param kwargs: 两个星号 ** 收集关键字参数 """print("开始装饰器功能")result=被装饰func(*args,**kwargs)print("结束装饰器功能")returnresultreturn内func

装饰器应用示例

def outer_func(func): def inner_func(*args, **kwargs): print("内函数执行前代码")result=func(*args, **kwargs)print("内函数执行后代码")returnresultreturninner_func @outer_func def send_email(邮箱地址, 主题, 邮件内容): print(f"Sending email to: {邮箱地址}")print(f"Subject: {主题}")print(f"Body: {邮件内容}")if__name__=="__main__":send_email("test@test.com","测试主题","测试邮件内容.")

实战应用示例

def ssh_D(exec_select_sql_func):""" 用来在SSH隧道中执行SELECT SQL语句的装饰器 exec_select_sql_func: 查询sql的函数""" def wrapper(*args, **kwargs):""" wrapper 的 Docstring :param args: 一个星号 * 收集位置参数 :param kwargs: 两个星号 ** 收集关键字参数""" print("1. 建立SSH隧道连接,并建立动态端口转发")print("2. 切换全局socket到SSH隧道的动态端口")result=exec_select_sql_func(*args, **kwargs)print("4. 关闭SSH隧道连接")returnresultreturnwrapper @ssh_D def execute_select_sql(sql_query):""" 执行SELECT SQL语句的函数 sql_query: 要执行的SQL查询语句""" print(f"3. 内函数 执行SQL查询: {sql_query}")# 模拟查询结果return["结果1","结果2","结果3"]if__name__=="__main__":sql="SELECT * FROM users WHERE age > 30;"results=execute_select_sql(sql)print("查询结果:", results)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 11:47:18

第一章——办公自动化之邮件批量发送:高效沟通,一键搞定

在日常工作中,我们常常需要向多个收件人发送邮件,例如通知会议、汇报工作进展、分享文件等。如果采用手工逐个发送的方式,不仅耗时费力,而且容易出现遗漏收件人、内容不一致等问题。本部分将带领大家利用Python实现邮件的批量发送…

作者头像 李华
网站建设 2026/9/2 19:35:02

36、Python命令行工具的高级用法与设计模式

Python命令行工具的高级用法与设计模式 1. 多参数选项的使用模式 在Python中, optparse 模块默认情况下,一个选项只能接受一个参数,但我们可以通过设置来改变这个数量。下面是一个示例,实现了一个类似 ls 命令的功能,能够同时显示两个目录的内容。 示例代码 #!/u…

作者头像 李华
网站建设 2026/9/2 21:35:34

Creed —— 血液特效与敌人伤害

目录 一,导入或迁移血液特效 二,触发血液特效 三,创建Dummy UI 四,设置BP_Dummy蓝图 一,导入或迁移血液特效 二,触发血液特效 当角色收到伤害时,生成血液特效; Spawn Emitter a…

作者头像 李华
网站建设 2026/9/2 17:10:01

快速排序:双指针快排

一、双指针快排 核心步骤: 数组分区选择分区后的第一个元素作为锚点左指针/右指针分别在分区后的数组中,选择大于和小于锚点的数据。找到后交换位置最终左右指针在遍历过程中会碰头(下标相同),此时把分区后的锚点数据&…

作者头像 李华
网站建设 2026/9/2 21:27:41

人工智能之数学基础:离散条件分布和连续条件概率密度

本文重点 本文我们将学习条件分布,我们学习过条件概率,我们先来回忆一下条件概率,在事件B发生的条件下事件A发生的条件概率可以表示为: 这就是条件概率,现在我们学习条件分布,条件分布是有两个随机变量 X与Y,在给定Y取某个值或某些值的条件下,求X的分布,这个分布就是…

作者头像 李华