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

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

@浙大疏锦行

相关推荐
Joker—H4 分钟前
【Java】Reflection反射(代理模式)
java·开发语言·经验分享·代理模式·idea
阿里巴巴淘系技术团队官网博客32 分钟前
面向互联网2C业务的分布式类Manus Java框架
java·开发语言·分布式
躲在云朵里`1 小时前
Java面试题(中等)
java
懂得节能嘛.1 小时前
【SpringAI实战】实现仿DeepSeek页面对话机器人(支持多模态上传)
java·spring
张乔241 小时前
mybatisX的自定义模板生成
java·ide·intellij-idea
笨蛋不要掉眼泪1 小时前
Java测试题(上)
java·开发语言
东方佑2 小时前
高效序列建模新突破:SamOut模型解读与21.79%损失改进
开发语言·python
峥无2 小时前
C语言分支与循环深度解析
c语言·开发语言
ahauedu2 小时前
用Java 代码实现一个简单的负载均衡逻辑
java·python·负载均衡
不过普通话一乙不改名2 小时前
第一章:Go语言基础入门之函数
开发语言·后端·golang