Python @函数装饰器及用法
1.函数装饰器的工作原理 函数装饰器的工作原理是怎样的呢?假设用 funA() 函数装饰器去装饰 funB() 函数,如下所示: #funA 作为装饰器函数 def funA ( fn ) : #... fn ( ) # 执行传入的fn参数 #... return '...' @funA def funB ( ) : #... 实际上,上面程序完全等价于下面的程序: def funA ( fn ) : #... fn ( ) # 执行传入的fn参数 #... return '...' def funB ( ) : #... funB = funA ( funB ) 通过比对以上 2 段程序不难发现,使用函数装饰器 A() 去装饰另一个函数 B(),其底层执行了如下 2 步操作: 将 B 作为参数传给 A() 函数; 将 A() 函数执行完成的返回值反馈回 B。 举个实例: #funA 作为装饰器函数 def funA ( fn ) : print ( "C语言中文网" ) fn ( ) # 执行传入的fn参数 print ( "http://c.biancheng.net" ) return "装饰器函数的返回值" @funA def funB ( ) : print ( "学习 Python" ) 程序执行流程为: C语言中文网 学习 Python http : // c .