python函数装饰器
时间: 2023-09-21 15:03:35 浏览: 87
Python函数装饰器是一种特殊的函数,用于修改或增强其他函数的功能。装饰器可以在不改变原函数的情况下,动态地添加新的功能或修改原有的功能。装饰器经常用于实现横切关注点(cross-cutting concerns),例如日志记录、性能测试、授权、缓存等。
装饰器的语法如下:
```
@decorator_function
def function_name():
# function code
```
其中,`decorator_function`是装饰器函数,`function_name`是被装饰的函数。装饰器函数接受一个函数作为参数,并返回一个新的函数,通常用来修改或增强原有的函数。
下面是一个简单的装饰器例子,用来计算函数执行的时间:
```
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Function {func.__name__} took {end_time - start_time:.2f} seconds to execute")
return result
return wrapper
@timer
def my_function():
time.sleep(1)
my_function() # Output: Function my_function took 1.00 seconds to execute
```
在上述例子中,`timer`函数是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数`wrapper`。`wrapper`函数记录了函数开始和结束的时间,并计算出函数执行的时间。`@timer`语法用来将`my_function`函数传递给`timer`函数进行装饰。
装饰器是Python中非常强大的一种功能,可以帮助开发者轻松地实现许多常见的功能。
阅读全文