python3 装饰器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 装饰器相关的知识,希望对你有一定的参考价值。
看廖雪峰官网的python3装饰器有感 装饰器即将一个函数作为变量在新的函数中调用此函数。 作业: 能否写出一个@log的decorator,使它既支持: @logdef f(): pass 又支持: @log(‘execute‘)def f(): pass 例1: import functools import time def log(*args,**kwargs): # *args 是个元组 if args and isinstance(args,tuple): #log() def decorator(func): @functools.wraps(func) def wrapper(*args1,**kwargs1): print("1111 %s %s()" %(args[0],func.__name__)) #return func return func(*args1,**kwargs1) return wrapper return decorator else: def decorator(func): @functools.wraps(func) def wrapper(*args1,**kwargs1): print("222 %s()" % func.__name__) return func(*args1,**kwargs1) return wrapper return decorator @log(‘test‘) def now1(): print(time.time()) now1() @log() def now2(): print(time.time()) now2()
result:得到两个函数调用log装饰器的结果。
1111 test now1()
1505878800.4148097
222 now2()
1505878800.4148097
网站链接:廖雪峰python3装饰器
本文出自 “LinuxNew” 博客,请务必保留此出处http://jimchen.blog.51cto.com/10026955/1967090
以上是关于python3 装饰器的主要内容,如果未能解决你的问题,请参考以下文章