【python基础知识】Day 27 函数专题2:装饰器

知识点:

  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 函数,观察日志输出

func.name :按照pep8的约定,在一个变量前后都加上两个下划线代表着这是一个Python内置的变量,是自动创建的。作用返回 func 的名称更详细的可以问AI

相关推荐
DKunYu20 分钟前
PyTorch入门
人工智能·pytorch·python·深度学习
楼田莉子25 分钟前
C++学习:C++11关于类型的处理
开发语言·c++·后端·学习
ZhengEnCi31 分钟前
Python_哈希表完全指南-从字典到高效查找的 Python 编程利器
python
今天没ID35 分钟前
Python 集合类型全解析:从网球赛事案例看透字符串、列表、元组、集合与字典(1)
python
小宁爱Python1 小时前
从零搭建 RAG 智能问答系统 4:从多模态架构到 Milvus 向量存储实践
python·milvus
林炳然1 小时前
Python-Basic Day-2 python容器(列表、元组)
python
可触的未来,发芽的智生1 小时前
一万个为什么:汉语词性对NLP的作用
python·神经网络·程序人生·自然语言处理
凤山老林1 小时前
SpringBoot 如何实现零拷贝:深度解析零拷贝技术
java·linux·开发语言·arm开发·spring boot·后端
黄毛火烧雪下1 小时前
ruby 、gem 和 cocoapods的联系与区别
开发语言·ruby·cocoapods
盼哥PyAI实验室1 小时前
Python函数进阶秘籍:闭包、装饰器与作用域全解析(通俗版)
开发语言·python