其实,python 中的装饰器本质上就是一个函数,这个函数接收其他的函数作为参数,并将其以一个全新的修改后的函数替换它
关于装饰器的知识是python面试中比较常见的,对于装饰器的理解可以看这篇文章:理解Python中的装饰器,理解之后,再手写一遍下面的8种装饰器加深理解以后使用就更轻松多了!1.最简单的函数
def myfunc() print "i am a function" myfunc()
2.初步了解装饰函数的调用结构
在函数执行前和执行后分别计时,打印函数运行消耗的时间
import datetime import time def out(fun): start = datetime.datetime.now() fun() end = datetime.datetime.now() print (end-start) return fun def inner(): time.sleep(1) print ("i am inner func") myfunc = out myfunc(inner)
3.尝试引用@语法糖来调用装饰函数
import datetime,time def out(func): start =datetime.datetime.now() func() end = datetime.datetime.now() print(end-start) return func @out def myfunc(): time.sleep(1) print("zhangkun inner")
4.使用内嵌的包装函数
使用