#!/usr/bin/env python # -*- coding:utf-8 -*- import time def wrapper(func): def deco(): start = time.time() func() stop = time.time() print("the func run %s"%(stop - start)) return deco #这里的【@wrapper】等于【test1 = wrapper(test1)】,wrapper(test1),将test1函数以实参的形式传递给wrapper函数,wrapper函数将会把deco函数的内存地址作为返回值返回给变量test1,而此时test1变量所指引的值相当于是deco函数的内存地址,如果test1()则将会执行deco函数 @wrapper def test1(): time.sleep(3) print("in the test1...") @wrapper def test2(): time.sleep(3) print("in the test2...") test1() test2()
原文:http://www.cnblogs.com/sunweigogogo/p/7617048.html