Python装饰器的诞生过程
Python中的装饰器是通过利用了函数特性的闭包实现的,所以在讲装饰器之前,我们需要先了解函数特性,以及闭包是怎么利用了函数特性的。
一、函数特性
Python中的函数特性总的来说有以下四点:
1. 函数作为变量传递
def add(x):
return x + 1
a = add # 作为变量
说明:函数如果不加括号,是不会执行的,代表的是一个函数对象,它是可以作为变量来传递。
2.函数作为参数传递
def add(x):
return x + 1
def excute(f):
return f(3)
excute(add) # 作为参数
说明:一个函数可以接受另一个函数对象作为自己的参数,并对函数对象进行处理。
3.函数作为返回值
def add(x):
return x + 1
def get_add():
return add # 作为返回值
说明:一个函数的返