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

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

@浙大疏锦行

相关推荐
fei_sun8 分钟前
【总结】【OS】成组链接法
jvm·数据结构
计算机学姐11 分钟前
基于php的摄影网站系统
开发语言·vue.js·后端·mysql·php·phpstorm
月明长歌11 分钟前
【码道初阶】牛客TSINGK110:二叉树遍历(较难)如何根据“扩展先序遍历”构建二叉树?
java·数据结构·算法
全栈陈序员19 分钟前
【Python】基础语法入门(二十)——项目实战:从零构建命令行 To-Do List 应用
开发语言·人工智能·python·学习
我不是程序猿儿23 分钟前
【C#】ScottPlot的Refresh()
开发语言·c#
Neolnfra24 分钟前
渗透测试标准化流程
开发语言·安全·web安全·http·网络安全·https·系统安全
用户21903265273524 分钟前
Spring Boot + Redis 注解极简教程:5分钟搞定CRUD操作
java·后端
计算机学姐25 分钟前
基于php的旅游景点预约门票管理系统
开发语言·后端·mysql·php·phpstorm
AA陈超27 分钟前
枚举类 `ETriggerEvent`
开发语言·c++·笔记·学习·ue5
Alice27 分钟前
linux scripts
java·linux·服务器