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

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

@浙大疏锦行

相关推荐
plainGeekDev10 分钟前
RecyclerView.Adapter → ListAdapter
java·kotlin·gradle
J2虾虾20 分钟前
Spring AI Alibaba - 人工介入(Human-in-the-Loop)
java·人工智能·spring
晚风予卿云月39 分钟前
【前缀和】一维前缀和 & 二维前缀和
数据结构·c++·算法
Old Uncle Tom41 分钟前
Harness Engineering 综述
java·开发语言·数据库
星原望野44 分钟前
JAVA:策略模式的实战使用
java·开发语言·策略模式
码界筑梦坊44 分钟前
282-基于Python的豆瓣音乐可视化分析推荐系统
开发语言·python·信息可视化·数据分析·flask·vue
LJianK11 小时前
java多态
java·开发语言·python
_Evan_Yao1 小时前
栈与队列:后进先出与先进先出的智慧
开发语言·python
YL200404261 小时前
071字符串解码
数据结构·leetcode
变量未定义~1 小时前
单点修改、区间求和(模板)、区间修改,单点查询(模板)
数据结构·算法