# /usr/bin/python# -*- coding:utf-8 -*-from time import timedef logged(when): def log(f,*args,**kargs): print ''' called: functions:%s args: %r kargs: %r ''' % (f,args,kargs) def pre_logged(f): def wrapper(*args,**kargs): log(f,*args,**kargs) return f(*args,**kargs) return wrapper def post_logged(f): def wrapper(*args,**kargs): now = time() try: return f(*args,**kargs) finally: log(f,*args,**kargs) print time delta:%s % (time()-now) return wrapper try: return {pre:pre_logged,post:post_logged}[when] except keyerror,e: raise valueerror(e),'must be pre or post'@logged(post)def hello(name): print hello,,namehello(world!)'''等同于: hello = logged(post)(hello(world!))'''
希望本文所述对大家的python程序设计有所帮助。
