【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

相关推荐
Fleshy数模2 分钟前
课堂教学质量评估系统:基于加权欧氏距离的评分实现
python·llm
恣艺3 分钟前
Python 游戏开发与文件处理:PyGame + Turtle + openpyxl + python-docx + PyPDF2
开发语言·python·pygame
高林雨露10 分钟前
kotlin 相关code
开发语言·kotlin
_山海11 分钟前
用langchain 通过text-embedding-3-small生成embedding
python·langchain·llm
我还记得那天14 分钟前
函数的递归调用
c语言·开发语言·visualstudio
zhangfeng113314 分钟前
ThinkPHP5 事件系统的标准最佳实践 事件系统的完整设计逻辑tags.php tags.php(事件地图)
android·开发语言·php
xyq202417 分钟前
HTML 标签简写及全称
开发语言
毋语天17 分钟前
FastAPI 网络编程入门到实战:从 HTTP 协议到异步 API 开发
python·网络编程·fastapi·rest api·异步编程
tongluowan00718 分钟前
数据结构 Bitmap(位图)示例 - 用户签到系统
开发语言·数据结构·bitmap·用户签到系统
就叫_这个吧18 分钟前
Java线程池应用的四种方式+线程池底层实现原理
java·开发语言