Python--装饰器
2015-10-16 21:27
447 查看
参考网址:
http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html
http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
1:对已有的对象添加额外功能,且不修改对象内部代码
2:python语法糖的使用
一:不带参数
time_calu1与time_calu2的区别:
前者是一次性的,只对第一个func()有效,即28~19行代码等效于‘ func = time_calu1(func); func() ’
后者可保证对每次调用的func(),都有效
二:带参数
http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html
http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
1:对已有的对象添加额外功能,且不修改对象内部代码
2:python语法糖的使用
一:不带参数
#!/usr/bin/python # -*- coding:utf-8 -*- # 16 Oct. 2015 # Author: Huang Junkai import time def time_calu1(func): def _extra(): start = time.clock() func() end = time.clock() print 'total time:', end - start return _extra def time_calu2(func): start = time.clock() func() end = time.clock() print 'total time:', end - start return func @time_calu2 def func(): print 'Wow! Success' func() func()
time_calu1与time_calu2的区别:
前者是一次性的,只对第一个func()有效,即28~19行代码等效于‘ func = time_calu1(func); func() ’
后者可保证对每次调用的func(),都有效
二:带参数
#!/usr/bin/python # -*- coding:utf-8 -*- # 16 Oct. 2015 # Author: Huang Junkai import time def time_calu1(func): def _extra(a, b): start = time.clock() result = func(a, b) end = time.clock() print 'used:', end - start return result return _extra def time_calu2(func): start = time.clock() func() end = time.clock() print 'used:', end - start return func @time_calu1 def foo(a, b): # print 'Wow! Success: the result is %s' % (a + b) return a + b result = foo(1, 2) print result
相关文章推荐
- 系列篇:Python3.x那些事儿
- Learning Python(1)--操作文件和目录
- python核心编程 7-14
- Flask基本结构(一)
- python核心编程 习题7-10
- python利用basemap叠加地图
- Python学习之列表排序
- AIX 7.1 install python
- 八大排序算法的 Python 实现
- python模块示例
- SmartFoxServer 2x的pythonclient
- python下smtp发送邮件
- 通过SSH远程使用ipython notebook
- <LeetCode><Easy> 112 Path Sum --二叉树深度优先遍历
- python核心编程 练习7-9
- <LeetCode><Easy> 118 Pascal's Triangle
- Python游戏服务器开发日记(八)整体方案改变了……
- <LeetCode><Easy> 118 Pascal's Triangle II
- 用python读写yaml/json文件
- python核心编程 练习题7.8