python中的装饰器
时间: 2023-10-23 19:10:05 浏览: 75
在Python中,装饰器是一种函数,它可以修改其他函数的功能。装饰器可以在不修改函数本身的情况下,为函数添加功能或行为。
装饰器的语法如下:
```python
@decorator
def function():
# function body
```
在这里,`decorator`是一个装饰器函数,它接收一个函数作为参数,并返回一个新的函数。当我们在定义`function`函数时使用`@decorator`语法时,Python会自动将`function`函数作为参数传递给`decorator`函数,并将返回的新函数赋值给`function`。
以下是一个简单的例子,演示如何使用装饰器来记录函数的执行时间:
```python
import time
def time_it(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__} took {end - start} seconds to run")
return result
return wrapper
@time_it
def some_function():
# function body
some_function()
```
在这个例子中,我们定义了一个装饰器函数`time_it`,它接收一个函数作为参数,并返回一个新的包装函数。这个包装函数记录了函数的执行时间,并在函数执行结束后打印出时间。我们使用`@time_it`语法来装饰函数`some_function`,以记录它的执行时间。
阅读全文