首页 > 代码库 > 高级闭包用法
高级闭包用法
高级闭包用法:
#!/usr/bin/env python# !-*-coding:utf-8-*-"""高级装饰器和闭包实例"""import timedef logged(when): """ 输出函数的日志信息 :param when: 选取那种日志格式 """ def log(f, *args, **kargs): print "asdfads %s" %f print """ Called: function:%s args: kargs """ % f def pre_logged(f): def wrapper(*args, **kwargs): log(f, *args, **kwargs) try: return f(*args, **kwargs) except Exception, e: print e return wrapper def post_logged(f): print f def wrapper(*args, **kwargs): log(f, *args, **kwargs) try: now = time.time() return f(*args, **kwargs) except Exception, e: print e finally: print "time waster: %d" % (time.time()-now) return wrapper return {"pre": pre_logged, "post": post_logged}[when]@logged("post")def func(aa): print aafunc("打倒日本帝国主义")
高级闭包用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。