装饰器

1.def w1(funk):    #将w函数加载到内存

2.@w1

#函数在没有被调用前其内部代码是不会被执行的。   @函数名是Python里面的一种语法糖。

执行w1函数,并将@w1下面的函数作为w1函数的参数,即@w1等价于w1(f1)

将执行完的w1函数返回值赋值给@w1下面的函数的函数名。

装饰器  可以对函数、类、方法进行加工。其语法简单,代码的可读性高。

Python中变量名和对象是分离的。变量名可以指向任一对象。本质上装饰器起到一个重新指向变量名的作用,让同一变量名指向一个新返回的可调用对象,从而达到修改可调用对象的目的。  #  装饰器新建了一个可调用对象。

                                                                                    #可以理解为含有环境参量的闭包。

装饰器本质上是一个Python函数,他可以让其他函数不需要做任何代码变动的前提下,增加额外功能,装饰器的返回值也是一个函数对象,它经常用于切面需要的场景,

比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。我们可以抽离出大量与函数功能本身无关的的雷同代码并继续重用。

简单的说,就是为已存在的函数添加新的功能。

原文地址:https://www.cnblogs.com/jacky912/p/10238539.html