装饰器
1.def w1(funk): #将w函数加载到内存
2.@w1
#函数在没有被调用前其内部代码是不会被执行的。 @函数名是Python里面的一种语法糖。
执行w1函数,并将@w1下面的函数作为w1函数的参数,即@w1等价于w1(f1)
将执行完的w1函数返回值赋值给@w1下面的函数的函数名。
装饰器 可以对函数、类、方法进行加工。其语法简单,代码的可读性高。
Python中变量名和对象是分离的。变量名可以指向任一对象。本质上装饰器起到一个重新指向变量名的作用,让同一变量名指向一个新返回的可调用对象,从而达到修改可调用对象的目的。 # 装饰器新建了一个可调用对象。
#可以理解为含有环境参量的闭包。
装饰器本质上是一个Python函数,他可以让其他函数不需要做任何代码变动的前提下,增加额外功能,装饰器的返回值也是一个函数对象,它经常用于切面需要的场景,
比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。我们可以抽离出大量与函数功能本身无关的的雷同代码并继续重用。
简单的说,就是为已存在的函数添加新的功能。