python装饰器
装饰器:本身也是一个函数,在不改变原来函数的代码和调用方式,给函数添加新功能
分析:say=timer(say)等价于@timer,通过say=timer(say)来分析:
1、timer(say)——找到timer函数,say就是func,调用timer函数
2、走到new_func()函数,里面是1、调用func()也就是调用say()函数,2、打印出new_func这个函数名和运行时间(此时,这个new_func函数还没有被调用)
3、return返回new_func这个函数名,用say去接收
4、say()就是timer(say)()去调用了new_func()函数,打印里面的2个结果