【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

相关推荐
煜bart2 分钟前
使用 TypeScript 实现算法处理
开发语言·前端·javascript
♛识尔如昼♛3 分钟前
C 基础(7) - 字符输入/输出和输入验证
c语言·开发语言
不知名XL7 分钟前
day01 agent开发基础铺垫
python
小肝一下7 分钟前
c++从入门到跑路——string类
开发语言·c++·职场和发展·string类
无巧不成书021811 分钟前
Unicode编码机制全解析:从核心原理到Java 实战
java·开发语言·java字符编码·unicode 15.1码点
楼田莉子11 分钟前
设计模式:构造器模式
开发语言·c++·后端·学习·设计模式
lly20240612 分钟前
Swift 析构过程
开发语言
-To be number.wan13 分钟前
Python爬取百度指数保姆级教程
爬虫·python
mu_guang_15 分钟前
计算机体系结构3-cache一致性和内存一致性的区别
java·开发语言·计算机体系结构
lingggggaaaa20 分钟前
PHP模型开发篇&MVC层&动态调试未授权&脆弱鉴权&未引用&错误逻辑
开发语言·安全·web安全·网络安全·php·mvc·代码审计