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

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)

http://www.jsqmd.com/news/84391/

相关文章:

  • Oracle、PL\SQL安装配置
  • Part 01|在多个项目之后,我开始对“现成商城系统”产生怀疑
  • 目标检测系列之YOLOv4——速度与精度的平衡
  • 分布式训练知识
  • 第一章——办公自动化之邮件批量发送:高效沟通,一键搞定
  • B站的视频怎么下载到电脑?
  • Part 02|我为什么开始自己做一套商城系统
  • 《AI元人文构想:元协议、行为重塑与文明免疫系统》一篇技术或伦理的论述与一份关于智能时代文明如何存续与发展的奠基性宣言
  • CAIE认证:一次关于AI认知与思维升级的个人记录
  • 21.数据库连接池
  • 常见API(补充)
  • 《Python实战小课:数据分析场景——解锁数据洞察之力》导读
  • 34、Python 数据持久化与序列化:从简单到关系型的全面解析
  • 放过自己,也放过你的领导
  • Part 03|当客户真的要交付时,我最先考虑的不是技术
  • 设计模式复习1
  • 我对防抖(Debounce)的一点理解与实践:从基础到立即执行
  • [网鼎杯 2020 青龙组]AreUSerialz(个人记录写题笔记,含PHP反序列化的原理、漏洞成因以及利用技巧)
  • PINN学习(三)—— 发现方程问题的解决
  • 当AI成为同事:HR的“战斗力”正在被重新定义
  • 【安卓aosp】编译报错 killed 如果处理
  • Comsol Multiphysics数值模拟
  • Windows11中使用VS2022编译运行libevent网络库
  • 不止于智能:GPT-5.1 发布,更温暖、更好聊的 ChatGPT 来啦!
  • 战网注册后显示无法登录
  • Creed —— 血液特效与敌人伤害
  • 生成式搜索优化服务商排行
  • PINBAI平板电脑维修实例
  • 大模型教我成为大模型算法工程师之day9:卷积神经网络 (CNN)
  • 优化巨型物流网络:某中心如何通过算法实现区域化转型