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

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

@浙大疏锦行

相关推荐
kyle~12 分钟前
CPU调度---协程
java·linux·服务器·数据库·c++20
会飞的小蛮猪17 分钟前
Skywalking运维之路(Skywalking服务搭建)
java·运维·监控
嵌入式-老费17 分钟前
自己动手写深度学习框架(快速学习python和关联库)
开发语言·python·学习
ctgu9023 分钟前
PyQt5(八):ui设置为可以手动随意拉伸功能
开发语言·qt·ui
L.EscaRC26 分钟前
Redisson在Spring Boot中的高并发应用解析
java·spring boot·后端
Shinom1ya_27 分钟前
算法 day 41
数据结构·算法·leetcode
他们叫我技术总监28 分钟前
从开发者视角深度评测:ModelEngine 与 AI 开发平台的技术博弈
java·人工智能·dubbo·智能体·modelengine
CVer儿31 分钟前
libtorch ITK 部署 nnUNetV2 模型
开发语言
李辉200333 分钟前
Python逻辑运算符
java·网络·python
asyxchenchong88840 分钟前
OpenLCA、GREET、R语言的生命周期评价方法、模型构建
开发语言·r语言