装饰器
先分享一些比较好的网站:
- http://python.jobbole.com/82344/
- https://www.zhihu.com/question/31265857
- http://python.jobbole.com/81683/
读者只要花十分钟看上述资料,便可理解常用的装饰器。
Python3.5.4
再分享我自己的装饰器库:
装饰器用于打印算法消耗的时间
def PrintTime(func):
@wraps(func)
def wrappers(*args,**kwargs):
"""
Print Time!
:return:func
"""
start=time()
func(*args,*kwargs)
end=time()
print("\n****************************************\n%s spent time: %s\n****************************************"%(func.__name__,(end-start)))
return wrappers
使用方法:
@PrintTime
def f(n):
print(n)
f(10)
结果:
10
****************************************
f spent time: 0.0
****************************************
装饰器打印函数文档
def Help(func):
@wraps(func)
def wrappers(*args,**kwargs):
print('************************************************************\n%s.__doc__ :%s\n************************************************************'%(func.__name__,func.__doc__))
func(*args,**kwargs)
return wrappers
使用方法:
@PrintHelp
def f(n):
"""
Test
:param n:
:return:
"""
print(n)
f(10)
结果:
****************************************
f.__doc__ :
Test
:param n:
:return:
****************************************
10
同理,读者可以尝试一下写打印参数的装饰器。装饰器用来减少很多无关的重复代码,是一个很好的东西。
如果您看到这篇文章有收获或者有不同的意见,欢迎点赞或者评论。
python群:190341254
丁。