写一个python装饰器并作出说明
时间: 2023-07-06 22:23:31 浏览: 84
装饰器是Python语言中的一种高级语法,它可以在不修改函数源代码的情况下,对函数的行为进行扩展或修改。常见的装饰器有函数计时、函数缓存、登录验证等。
以下是一个简单的装饰器示例,用于计算函数的运行时间:
```python
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 运行时间为: {end_time - start_time} 秒")
return result
return wrapper
```
上述代码定义了一个名为 `timer` 的装饰器,它接受一个函数作为参数,并返回一个新的函数 `wrapper`。在 `wrapper` 函数中,首先记录函数开始执行的时间,然后调用原函数并获取其返回值,最后记录函数执行结束的时间并计算函数运行时间,最终返回原函数的返回值。
使用该装饰器可以很方便地计算函数运行时间,例如:
```python
@timer
def my_func():
time.sleep(1)
return "Hello, world!"
my_func() # 执行该函数并输出运行时间
```
执行上述代码后,会输出类似以下的结果:
```
函数 my_func 运行时间为: 1.0010111331939697 秒
```
总之,装饰器是Python中非常有用的语法,可以让我们更加灵活地使用函数,实现各种有趣的功能。
阅读全文