python装饰器含义及作用
时间: 2023-12-25 07:57:44 浏览: 28
Python装饰器是一种特殊的函数,它可以接收一个函数作为参数,并返回一个新的函数。装饰器的作用是在不修改原函数的前提下,给函数增加额外的功能,比如记录日志、计时、缓存结果等。装饰器可以简化代码,提高代码的可重用性和可维护性。
装饰器的语法是在函数定义前加上 @decorator_name,其中 decorator_name 是装饰器名称。装饰器可以嵌套使用,多个装饰器的执行顺序是从上到下。装饰器可以用于类方法、静态方法和类函数等。
以下是一个简单的装饰器示例,用于计算函数的执行时间:
```python
import time
def time_it(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} seconds to execute")
return result
return wrapper
@time_it
def my_function():
time.sleep(1)
my_function()
```
在上面的示例中,time_it 是一个装饰器,它接收一个函数作为参数,并返回一个新的函数 wrapper。wrapper 函数记录了函数的执行时间,并返回函数的结果。通过 @time_it 装饰器,my_function 函数被传递给 time_it 装饰器,并返回一个新的函数,即 wrapper 函数。当执行 my_function 函数时,实际上执行的是 wrapper 函数。由于 wrapper 函数包含了计时的逻辑,因此可以输出函数的执行时间。