python训练营day27

知识点回顾:

  1. 装饰器的思想:进一步复用
  2. 函数的装饰器写法
  3. 注意内部函数的返回值

作业:

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

python 复制代码
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 函数,观察日志输出

@浙大疏锦行

相关推荐
纵有疾風起几秒前
【Linux 系统开发】基础开发工具详解:自动化构建、版本控制与调试器开发实战
linux·服务器·开发语言·c++·经验分享·开源·bash
小北方城市网4 分钟前
SpringBoot 集成 RabbitMQ 实战(消息队列解耦与削峰):实现高可靠异步通信
java·spring boot·python·微服务·rabbitmq·java-rabbitmq·数据库架构
百锦再4 分钟前
国产数据库现状与技术演进
数据库·python·plotly·flask·virtualenv·pygame·tornado
java_t_t8 分钟前
Maven插件apiscan介绍与使用
java·maven·api文档·maven插件
Piar1231sdafa9 分钟前
YOLO11-Seg与Fasternet-BiFPN结合的枣果实品质检测系统实现详解
python
minglie111 分钟前
micropython 按键
python
阿豪只会阿巴11 分钟前
项目心得——发布者和订阅者问题解决思路
linux·开发语言·笔记·python·ubuntu·ros2
wjs202415 分钟前
Java 注释
开发语言
带刺的坐椅15 分钟前
FastJson2 与 SnackJson4 有什么区别?
java·jsonpath·fastjon2·snack4
linweidong18 分钟前
C++如何避免 ODR(One Definition Rule)冲突?
java·jvm·c++