1. 预热知识
要理解python中的装饰器,就要明白在python中,函数是一种特殊类型的变量,可以作为参数传递给函数,也可以作为返回值返回。比如下面的代码,就是 str_1 作为参数传递给 str_2 ,然后再 str_2 中调用传入的函数。def str_1():
print('good day')
def str_2(func):
func()
str_2(str_1)
再看下面的这段代码:def str_2():
def str_1():
print("abc")
return str_1
str_2()()
这段代码在 str_2 内部定义的函数 str_1 作为一个变量返回,然后我们在调用 str_2时获取到返回之后,继续调用 str_1。
2. 了解 python 中的装饰器
2.1 装饰器的作用
装饰器本质是一个 python 函数,让其他函数在不需要任何代码变动的前提下增加额外的功能,其返回值也是一个函数对象。
2.2 功能实现过程
实例:
现在我们有以下一个函数:def sum_1(a,b):
sum_1 = a + b
return sum_1
我们希望增加一个获得计算函数运行时间的功能,于是将代码修改如下:import time
def sum_1(a,b):
time_1 = time.time()
sum_0 = a + b
print(time.time()-time_1)