裝飾器
先分享一些比較好的網站:
- 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
丁。