【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

相关推荐
凛_Lin~~3 分钟前
安卓 Java线程八股文 (线程、多线程、线程池、线程安全)
android·java·开发语言
MrSYJ6 分钟前
pyenv管理多个版本的python,你造吗?我才造
python·llm·ai编程
C语言不精7 分钟前
c语言-优雅的多级菜单设计与实现
c语言·开发语言·算法
geekmice8 分钟前
thymeleaf处理参数传递问题
开发语言·lua
咕白m6258 分钟前
Python 实现 Word 到 Markdown 的转换
后端·python
LNN20229 分钟前
Qt 5.8.0 下实现触摸屏热插拔功能的探索与实践(2)
开发语言·qt
董世昌4111 分钟前
箭头函数和普通函数有什么区别
开发语言·javascript·ecmascript
AI科技星14 分钟前
张祥前统一场论:引力场与磁矢势的关联,反引力场生成及拉格朗日点解析(网友问题解答)
开发语言·数据结构·经验分享·线性代数·算法
β添砖java15 分钟前
python第一阶段第八章文件操作
开发语言·python