装饰器函数的作用?写一个简单的装饰器程序
时间: 2024-09-27 22:10:00 浏览: 4
装饰器函数在Python中是一种特殊的函数,它们的主要作用是接收其他函数作为输入,并返回一个新的函数,通常会在原函数的基础上添加额外的功能、修改其行为或动态地改变其特性。装饰器可以用于日志记录、性能分析、权限控制、缓存等功能,使得代码更易于维护和复用。
下面是一个简单的装饰器程序示例,这个装饰器用于打印函数开始和结束的时间:
```python
import time
def timer_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"{func.__name__} executed in {end_time - start_time} seconds.")
return result
return wrapper
# 使用装饰器
@timer_decorator
def my_function(n):
time.sleep(n)
my_function(3) # 输出:my_function executed in 3.0029856475830078 seconds.
```
在这个例子中,`timer_decorator`是一个装饰器函数,`wrapper`是内部包装函数。当我们使用`@timer_decorator`装饰`my_function`时,实际上是将`my_function`传递给了`timer_decorator`并返回了新的`wrapper`函数。当调用`my_function`时,实际上执行的是被装饰后的`wrapper`函数,从而增加了计时功能。