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

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

@浙大疏锦行

相关推荐
启山智软10 小时前
【中大企业选择源码部署商城系统】
java·spring·商城开发
2401_8384725110 小时前
C++中的访问者模式
开发语言·c++·算法
我真的是大笨蛋10 小时前
深度解析InnoDB如何保障Buffer与磁盘数据一致性
java·数据库·sql·mysql·性能优化
csbysj202010 小时前
《Foundation 开关:深度解析其原理与应用》
开发语言
怪兽源码11 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
恒悦sunsite11 小时前
Redis之配置只读账号
java·redis·bootstrap
梦里小白龙11 小时前
java 通过Minio上传文件
java·开发语言
人道领域11 小时前
javaWeb从入门到进阶(SpringBoot事务管理及AOP)
java·数据库·mysql
一条大祥脚11 小时前
26.1.26 扫描线+数论|因子反演+子序列计数|树套树优化最短路
数据结构·算法
m0_5613596711 小时前
基于C++的机器学习库开发
开发语言·c++·算法