python装饰器是个对嵌套函数的语法糖

作用是在函数调用方法不变的情况下,将函数包装成另一个函数来使用

import time
def sum1():
sum = 1 + 2
print (sum)
def timeit(func):
def test():
start = time.clock()
func()
end = time.clock()
print func.__name__, ": time used:", end - start
return test
sum1 = timeit(sum1)
sum1()
@timeit
def func2():
print "hello"
func2()
def makebold(fn):
def wrapped():
return "<b>" + fn() + "</b>"
return wrapped
def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped
@makebold
@makeitalic
def hello():
return "hello world"
print hello() ## returns "<b><i>hello world</i></b>"

输出

3
sum1 : time used: 2.05264400285e-05
hello
func2 : time used: 1.500009079e-05
<b><i>hello world</i></b>

参考: http://stackoverflow.com/questions/739654/how-can-i-make-a-chain-of-function-decorators-in-python

最新文章

  1. delphi 取硬盘号
  2. Unity之Animation动画
  3. 原生select默认显示为空胡fish覅神农大丰今年圣诞节奋笔疾书发撒可交付你说的尽快发那段时间南方大厦尽可能放你的所发生的你富家大室耐腐蚀的看法呢尽快发你上课积啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊撒啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊分你束带结发你看
  4. html5实现摇一摇功能
  5. 【原】web移动端常用知识点笔记
  6. [译]Node.js Best Practices - Part 2
  7. div+css进度条
  8. 在帝都的Android面试感想
  9. Java_JAVA6动态编译的问题
  10. css固定姓名显示长度,排列更整齐
  11. 利用多写Redis实现分布式锁原理与实现分析(转)
  12. WPF NotifyIcon and Taskbar 任务栏示例
  13. win7 提升windows服务权限使非管理员用户可以控制windows服务的开启和关闭
  14. oracle常用自定义函数集合
  15. 用lsb_release -a 查看linux版本
  16. PADS LAYOUT到底怎么走线
  17. C# 字典 Dictionary
  18. [LeetCode] Longest Word in Dictionary 字典中的最长单词
  19. 思维导图工具XMind
  20. 意料之外,情理之中,Spring.NET 3.0 版本发布-

热门文章

  1. netty11---管道
  2. 20145312《Java程序设计》课程总结
  3. The Startup Manager FAQ
  4. 翻翻git之---可用作课程表/排班表的自定义table库ScrollTableView
  5. SaltStack介绍及简单配置-第一篇
  6. deepin下用命令管理自己的Github仓库
  7. Hdu 1455
  8. 07_ZkClient提供的API使用
  9. 《Django By Example》
  10. openstack dpdk