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

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

@浙大疏锦行

相关推荐
咸鱼翻身小阿橙11 分钟前
QT-P3
开发语言·qt·计算机视觉
心易行者18 分钟前
代码写好了,然后呢?——手把手教你把Python脚本变成能赚钱的Web应用
开发语言·前端·python
AKA__Zas20 分钟前
初识 事务
java·开发语言·数据库·sql
kongba00721 分钟前
2026年4月19日 kimi记忆备份
java·前端·数据库
今儿敲了吗22 分钟前
常用UI组件
开发语言
AI人工智能+电脑小能手23 分钟前
【大白话说Java面试题】【Java基础篇】01_说说ArrayList的底层原理/扩容规则
java·后端·面试·list
笨鸟先飞的橘猫25 分钟前
数据结构学习——跳表
数据结构·python·学习
高斯林.神犇28 分钟前
六、java配置类改造ioc
java·开发语言
t***54429 分钟前
Orwell Dev-C++ 和 Embarcadero Dev-C++ 哪个更好
开发语言·c++
gCode Teacher 格码致知31 分钟前
Python提高:软件测试中Fixture机制-由Deepseek产生
开发语言·python