Pyhton训练营打卡Day27

知识点回顾:

  1. 装饰器的思想:进一步复用
  2. 函数的装饰器写法
  3. 注意内部函数的返回值

作业:

编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)

python 复制代码
def logger(func):
    def wrapper(*args, **kwargs):
        # 执行前打印日志
        print(f"[日志] 开始执行函数: {func.__name__}")
        print(f"[日志] 参数: args={args}, kwargs={kwargs}")
        
        # 执行原函数并获取返回值
        result = func(*args, **kwargs)
        
        # 执行后打印日志
        print(f"[日志] 函数 {func.__name__} 执行完毕")
        print(f"[日志] 返回值: {result}")
        
        return result  # 返回原函数的返回值
    return wrapper

# 示例使用
@logger
def add(a, b):
    return a + b

# 测试
add(3, 5)    

日志\] 开始执行函数: add \[日志\] 参数: args=(3, 5), kwargs={} \[日志\] 函数 add 执行完毕 \[日志\] 返回值: 8

今天任务重加之今天自己有事情,下次补上这次学习内容。

@浙大疏锦行

相关推荐
w***42410 小时前
springboot使用logback自定义日志
java·spring boot·logback
带刺的坐椅10 小时前
AI 应用工作流:LangGraph 和 Solon AI Flow,我该选谁?
java·python·ai·solon·flow·langgraph
北郭guo10 小时前
MyBatis框架讲解,工作原理、核心内容、如何实现【从浅入深】让你看完这篇文档对于MyBatis的理解更加深入
java·数据库·mybatis
庄宿正10 小时前
【Vue2+SpringBoot+SM2】Vue2 + Spring Boot 实现 SM2 双向非对称加密完整实战
java·spring boot·后端
道一2310 小时前
C#获取操作系统版本号方法
开发语言·c#
道一2310 小时前
C# 判断文件是否存在的方法
开发语言·c#
Predestination王瀞潞10 小时前
Java EE开发技术(第七章:JSTL标签库)
java·java-ee
信仰_27399324310 小时前
Java面试题
java·开发语言
哭泣方源炼蛊10 小时前
HAUE 新生周赛(七)题解
数据结构·c++·算法