装饰器的基本使用
Python函数装饰器是一种用于扩展函数功能的方法,它允许在不修改原始函数代码的情况下,为函数添加新的功能。装饰器本质上是一个接受函数作为参数的高阶函数,它返回一个新的函数,这个新函数通常会包含原始函数的功能以及一些额外的操作。
下面是一个简单的装饰器示例:
```python
def my_decorator(func):
def wrapper():
print("在原始函数之前执行的操作")
func()
print("在原始函数之后执行的操作")
return wrapper
@my_decorator
def my_function():
print("这是原始函数")
my_function()
```
输出结果:
```
在原始函数之前执行的操作
这是原始函数
在原始函数之后执行的操作
```
在这个例子中,`my_decorator` 是一个装饰器函数,它接受一个函数 `func` 作为参数。`wrapper` 函数是 `my_decorator` 内部定义的一个嵌套函数,它在调用原始函数 `func` 之前和之后分别执行一些操作。最后,`my_decorator` 返回 `wrapper` 函数。
使用 `@my_decorator` 语法将 `my_decorator` 应用于 `my_function` 函数。这相当于以下代码:
```python
my_function = my_decorator(my_function)
```
现在,当我们调用 `my_function()` 时,实际上是在调用 `wrapper()` 函数,从而实现了在原始函数之前和之后执行额外操作的目的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)