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

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

@浙大疏锦行

相关推荐
2301_7634724639 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
TechWJ1 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto
qq_12498707531 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.1 小时前
Day06——权限认证-项目集成
java
瑶山1 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
abluckyboy1 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
lly2024061 小时前
C++ 文件和流
开发语言
2301_818732061 小时前
前端调用控制层接口,进不去,报错415,类型不匹配
java·spring boot·spring·tomcat·intellij-idea
m0_706653232 小时前
分布式系统安全通信
开发语言·c++·算法