如何理解Python中的装饰器
时间: 2024-03-21 15:34:02 浏览: 77
详解python中的装饰器
装饰器是Python中一种非常有用的语法结构,它可以在不改变原函数代码的情况下,为函数添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。新函数通常会在原函数执行前后执行一些额外的代码,比如计时、日志记录、权限验证等。装饰器可以让代码更加简洁、优雅,同时也提高了代码的可重用性和可维护性。
举个例子,假设我们有一个函数需要计算运行时间:
```python
import time
def foo():
start_time = time.time()
# do something
end_time = time.time()
print("Time elapsed: ", end_time - start_time)
```
如果我们需要在多个函数中计算运行时间,就需要在每个函数中都写上类似的计时代码,这样会导致代码冗余。使用装饰器可以解决这个问题:
```python
import time
def timer(func):
def wrapper():
start_time = time.time()
func()
end_time = time.time()
print("Time elapsed: ", end_time - start_time)
return wrapper
@timer
def foo():
# do something
```
这样,我们就可以通过在函数定义前加上`@timer`来自动添加计时功能,而不需要修改原函数的代码。
阅读全文