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

Python训练营-Day27-函数专题2:装饰器

编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)
import timedef logger_advanced(func):def wrapper(*args, **kwargs):timestamp = time.strftime("%Y-%m-%d %H:%M:%S")print(f"\n[LOG][{timestamp}] 调用函数: {func.__name__}")print(f"[LOG][{timestamp}] 参数: args={args}, kwargs={kwargs}")result = func(*args, **kwargs)print(f"[LOG][{timestamp}] 返回值: {result}\n")return resultreturn wrapper@logger_advanced
def multy(x,y):return x*y;multy(2,3)

运行结果:

@浙大疏锦行

http://www.xdnf.cn/news/970939.html

相关文章:

  • Java如何权衡是使用无序的数组还是有序的数组
  • copilot基于 DeepSeek-R1 思路构建 VLA 自动驾驶强化学习系统
  • 华为云Flexus+DeepSeek征文|体验华为云ModelArts快速搭建Dify-LLM应用开发平台并创建联网大模型
  • QMC5883L的驱动
  • iview组件库:自定义方法去控制Tree树形数据的根节点与叶节点的关联性
  • Android Studio jetpack compose折叠日历日期选择器【折叠日历】
  • IOC和AOP
  • vue实现气泡词云图
  • FastJson的反序列化问题入门
  • Qt使用ODBC连接MySQL数据库
  • R7-1 显示Pascal三角形
  • 【代码模板】从huggingface加载tokenizer和模型,进行推理
  • idea64.exe.vmoptions配置
  • IDEA中配置HTML和Thymeleaf热部署的步骤
  • 蓝桥杯 2024 15届国赛 A组 儿童节快乐
  • 指针与引用参数传递的区别及内存操作流程详解
  • 分散电站,集中掌控,安科瑞光伏云平台助力企业绿色转型
  • 高通录像功能
  • Vim 光标移动命令总览
  • Java中高并发线程池的相关面试题详解
  • 《ZLMediaKit 全流程实战:从部署到 API 调用与前后端集成》
  • 用 LoRA 对 Qwen2.5-VL 模型进行SFT - FORCE_TORCHRUN=1
  • 条件运算符
  • error: src refspec master does not match any - Git
  • coze的基本使用
  • 从零开始搭建现代化 Monorepo 开发模板:TypeScript + Rollup + Jest + 持续集成完整指南
  • Git操作问题及解决方案-记录5
  • (十)学生端搭建
  • 【SQL学习笔记3】深入理解窗口函数的用法
  • 鹰盾加密器系统黑屏问题的深度解析与处理机制