#coding=utf-8
# -*- coding=utf-8 -*-
import time
from functools import wraps
def fn_timer(function):
@wraps(function)
def function_timer(*args, **kwargs) :
t0 = time.time()
result = function(*args, **kwargs)
t1 = time.time()
print ("Total time running %s : %s secondes" % (function.func_name, str(t1 - t0)))
return result
return function_timer
def my_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
'''decorator'''
print('Calling decorated function...')
return func(*args, **kwargs)
return wrapper
@fn_timer
def example():
"""Docstring"""
print('Called example function')
time.sleep(10)
example()
调用example时,程序会进入到fn_timer装饰器
运行结果:
stargraph:demo stargraph$ python python_wraps.py
Called example function
Total time running example : 10.0044021606 secondes
stargraph:demo stargraph$