python装饰器
时间: 2023-06-29 15:09:58 浏览: 92
python 装饰器(示例)
Python装饰器是一种函数,它可以接受一个函数作为输入,并返回一个新的函数。装饰器可以在不修改原函数代码的情况下为函数添加新的功能或修改其行为。
装饰器的语法如下:
```python
@decorator_function
def my_function():
# function code
```
其中,`decorator_function` 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数。`my_function` 是被装饰的函数。
下面是一个简单的装饰器示例,它用于计算函数执行时间:
```python
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()
```
输出:
```
Function my_function took 1.00 seconds to execute
```
在上面的示例中,`timer` 是一个装饰器函数,它接受一个函数作为参数,返回一个新的函数 `wrapper`。`wrapper` 函数接受任意数量的位置参数和关键字参数,并在调用原函数前后计时,然后输出执行时间。`@timer` 表示将 `my_function` 函数传递给 `timer` 装饰器函数进行装饰。
阅读全文