Python 面试题
目录

Python 中如何定义和使用装饰器?

· 约 2 分钟读完 · 第 24 / 171 章

推荐答案

本题详细解读

装饰器的定义

装饰器是 Python 中的一种高级功能,它允许你在不修改原函数代码的情况下,为函数添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。

装饰器的使用

在上面的代码中,my_decorator 是一个装饰器函数。它接受一个函数 func 作为参数,并返回一个新的函数 wrapper。wrapper 函数在调用 func 之前和之后分别打印一些信息。

装饰器的语法糖

使用 @ 符号可以将装饰器应用到函数上。例如,@my_decorator 应用于 say_hello 函数,相当于执行了以下代码:

装饰器的执行流程

  1. 当调用 say_hello() 时,实际上调用的是 wrapper 函数。
  2. wrapper 函数首先打印 "Something is happening before the function is called."。
  3. 然后调用原始的 say_hello 函数,并打印 "Hello!"。
  4. 最后,wrapper 函数打印 "Something is happening after the function is called." 并返回结果。

装饰器的应用场景

装饰器常用于日志记录、权限校验、性能测试等场景,能够在不修改原函数代码的情况下,为函数添加额外的功能。