预备知识
装饰器是一个函数。通过学习菜鸟教程来了解装饰器的基本概念、作用和Python语法。
正文
本文介绍一个用来显示函数执行时间的装饰器。以下的代码用来装饰一个函数,使函数运行完毕后能显示函数的运行时间,而且可以自定义提示信息。
def time_decorator_with_prompt(prompt_infor):
def time_decorator(f):
@wraps(f)
def decorated(*args, **kwargs):
start_time = time.time()
result = f(*args, **kwargs)
print(prompt_infor + ", Time =", time.time() - start_time)
return result
return decorated
return time_decorator
这段代码的范式学习自菜鸟教程。
解释
这段代码最有意义的是给装饰器加参数。通过外面套一个函数的壳(time_decorator_with_prompt
),使用多少参数都可以通过外面的壳传入,然后在壳内部直接使用这些参数确定装饰器,最后返回这个被确定的装饰器。在外部确定参数,也是函数式编程一个很大的应用。
应用
以下是一个应用的例子:
@time_decorator_with_prompt(prompt_infor = "Load File Successfully")
def load_file():
# load some file
return something
load_file()
输出信息:
Load File Successfully, Time = 0.01