其实,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.使用内嵌的包装函数
使用