Python裝飾器小結

裝飾器基礎概念見python裝飾器


裝飾器的作用:在不修改原函數的情況下,動態爲函數增加某些功能

裝飾器的本質:裝飾器其實就是返回函數的高階函數

Exp:

def  decorator(func):
	return 'study'

@decorator
def func():
	return 'stupid'

本來func函數返回值是stupid,但是經過@符號,相當於進行了賦值操作,將study賦值給func,這個時候func不再是個函數,而是個字符串。

裝飾器就是將decorator不再返回字符串,而是返回一個函數:

def decorator2(func):
	def wrapper():
		print('whatever')
		f = func()
		return f	
	return wrapper


此時func指向的不再是原來只打印stupid的函數了,而是一個新函數wrapper,這個新函數會先執行print('whatever'),再執行func裏的操作

常用場景:異常處理,時間統計


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章