Skip to content

Commit 305947f

Browse files
committed
装饰器的简单应用
1 parent 5acd179 commit 305947f

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

tools/time_log.py

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# encoding: utf-8
2+
__author__ = 'zhanghe'
3+
4+
import time
5+
6+
7+
def time_log(func):
8+
"""
9+
记录方法运行时间的装饰器
10+
:param func:
11+
:return:
12+
"""
13+
def wrapper(*args, **kw):
14+
func_name = func.__name__
15+
start_time = time.time()
16+
print '方法%s开始时间:%s' % (func_name, time.ctime())
17+
back_func = func(*args, **kw)
18+
end_time = time.time()
19+
run_time = end_time - start_time
20+
print '方法%s结束时间:%s' % (func_name, time.ctime())
21+
print '方法%s运行时间:%0.2fS' % (func_name, run_time)
22+
return back_func
23+
return wrapper
24+
25+
26+
def time_log_with_des(text='执行'):
27+
"""
28+
记录方法运行时间的装饰器(带描述)
29+
:param text:
30+
:return:
31+
"""
32+
def decorator(func):
33+
def wrapper(*args, **kw):
34+
func_name = func.__name__
35+
start_time = time.time()
36+
print '%s方法%s开始时间:%s' % (text, func_name, time.ctime())
37+
back_func = func(*args, **kw)
38+
end_time = time.time()
39+
run_time = end_time - start_time
40+
print '%s方法%s结束时间:%s' % (text, func_name, time.ctime())
41+
print '%s方法%s运行时间:%0.2fS' % (text, func_name, run_time)
42+
return back_func
43+
return wrapper
44+
return decorator
45+
46+
47+
# @time_log
48+
# @time_log_with_des()
49+
@time_log_with_des('调用')
50+
def foo():
51+
for i in xrange(100000000):
52+
pass
53+
54+
55+
if __name__ == '__main__':
56+
foo()

0 commit comments

Comments
 (0)