装饰器是AOC(面向横切面的编程),它的功能在函数运行前与运行后完成一系列的操作,改变函数输出的结果。主要用在日志打印等方面,稍后补充。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'cherry'
import time
def timeit(fn):
def wrapper(a, b):
print 'start: ', time.time()
fn(a, b)
print 'end: ', time.time()
return wrapper
def fn(a, b):
print a + b
return
func = timeit(fn)
func(1, 2)#有返回值才可以调用,因此timeit必须有返回值fn
func(3, 4)
这里用内嵌函数可以保证fn函数在两次执行中都会调用timeit函数返回的结果,同时需要了解装饰器如何传递参数。