实例:
decorators.py
import time
def timer(func):
def wrapper(*args, **kwargs):
#函数花费时间由两个时间方法和该函数组成
t = time.time()
func(*args, **kwargs)
t = time.time() - t
print(f"function {func.__name__} cost {t:.1f} seconds")
return wrapper
main.py
from decorators import timer
import time
@timer
def func_a():
time.sleep(0.1)
@timer
def func_b():
time.sleep(0.2)
func_a()
func_b()
decorator 的作用是能够在函数执行之前和之后进行一些处理,而这类处理通常具备一定的通用性,需要包装到多个函数。因此使用 decorator 能够有效的避免重复代码和提升代码可读性。
这是实现了一个计时器的 decorator。这个 decorator 的名称被命名为 timer。我们将 timer 包裹在任何函数的外面,那么当这个函数被调用的时候,就会自动记录这个函数的执行时间并打印出来