1 什么是装饰器
装饰器的实现方式
高阶函数+嵌套+闭包
2 高阶函数:函数接受或返回的为一个函数名。
嵌套 :函数里面定义函数
闭包就是作用域
语法糖:@
3 装饰器达到了目的,但是实际上是换了一个东西 运行是闭包函数 ,修改原函数的动作没有问题,但是 返回值还是闭包函数的
所以 如果要达到在原函数设定返回值而运行后输出这个返回值
需要在闭包函数里面将return=原函数
4 原函数加上参数
加上参数,则闭包函数也需要加上形参,并且在闭包函数里面传给原函数
import time def fathe(func): def tt(*list,**dic): stat_time=time.time() func(*list,**dic) end_time=time.time() print(end_time-stat_time) return tt @fathe def foo(Date,sit,name): time.sleep(3) print('from the foo',Date,sit,name) foo(913,'19e','liuyun_sb')
这个实例里面的@fathe函数 原函数有几个形参都适用
再说一个无关的东西
python 本身真是太聪明了
再说一个小东西