python装饰器语法糖
时间: 2024-09-27 10:01:11 浏览: 42
python实现装饰器、描述符
Python装饰器是一种特殊类型的函数,它允许我们修改其他函数的功能,而无需直接更改其源代码。它们通常以`@decorator_name`的形式应用于函数定义之前,这是所谓的语法糖形式[^1]。
举个简单的例子,假设有一个计时器装饰器`@timer`,我们可以这样使用:
```python
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"{func.__name__} took {end_time - start_time} seconds")
return result
return wrapper
@timer
def my_function(n):
time.sleep(n)
my_function(2)
```
在这个例子中,`@timer`实际上是调用了`timer(my_function)`并返回一个新的函数`wrapper`,这个新的函数会记录并显示原函数执行的时间。
阅读全文