Python的裝飾器(decorator)機制是Python語言的一大特色,它讓開發者可以在不影響原有代碼結構的情況下給代碼添加額外的功能。Python的裝飾器實現主要借助于函數定義、閉包、函數返回函數等語言特性實現。
裝飾器是一個用來修飾函數(方法)的函數。能夠更加靈活地為函數添加功能,裝飾器在使用時可以直接用@符號指定要用的裝飾器函數。
示例:
def log(func): def wrapper(*args, **kw): print('調用%s函數....' % func.__name__) return func(*args, **kw) return wrapper @log def sum(a, b): return a + b print(sum(2, 3))
以上代碼中定義了一個log裝飾器函數,它接受一個函數作為參數。在定義一個wrapper函數,在調用被修飾的函數之前打印一行日志,然后將調用傳遞到原函數中,最后返回wrapper函數。在sum函數上面使用@log語法糖即可實現裝飾器的效果。
涉及到裝飾器的知識點都比較基礎,但是將其整合到一起時就顯得麻煩。需要對當中的閉包、函數參數解壓、多個裝飾器、帶參數裝飾器等內容進行深入了解。
上一篇python 新疆文件夾
下一篇將角度mat對話框居中