PYTHON训练营DAY27

装饰器

编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)

python 复制代码
@logger
def multiply(a, b):
    return a * b
 
multiply(2, 3)  
# 输出:
# 开始执行函数 multiply,参数: (2, 3), {}
# 函数 multiply 执行完毕,返回值: 6
 
def logger(func):
    def wrapper(*args, **kwargs):  # args 是元组,kwargs 是字典
        print(f"开始执行函数 {func.__name__},参数: {args}, {kwargs}")
        result = func(*args, **kwargs)
        print(f"函数 {func.__name__} 执行完毕,返回值: {result}")
        return result
    return wrapper
@logger
def multiply(a, b):
    return a * b 
multiply(2, 3)  # 调用 multiply 函数,观察日志输出

@浙大疏锦行

相关推荐
全栈老石15 分钟前
Python 异步生存手册:给被 JS async/await 宠坏的全栈工程师
后端·python
2的n次方_16 分钟前
Runtime 执行提交机制:NPU 硬件队列的管理与任务原子化下发
c语言·开发语言
梨落秋霜23 分钟前
Python入门篇【模块/包】
python
2501_9447114333 分钟前
JS 对象遍历全解析
开发语言·前端·javascript
凡人叶枫1 小时前
C++中智能指针详解(Linux实战版)| 彻底解决内存泄漏,新手也能吃透
java·linux·c语言·开发语言·c++·嵌入式开发
Tony Bai1 小时前
再见,丑陋的 container/heap!Go 泛型堆 heap/v2 提案解析
开发语言·后端·golang
小糯米6011 小时前
C++顺序表和vector
开发语言·c++·算法
froginwe111 小时前
JavaScript 函数调用
开发语言
阔皮大师1 小时前
INote轻量文本编辑器
java·javascript·python·c#
独望漫天星辰1 小时前
C++ 多态深度解析:从语法规则到底层实现(附实战验证代码)
开发语言·c++