1. 程式人生 > >Python3裝飾器

Python3裝飾器

返回值 bubuko 高階函數 實參 img 什麽 裝飾器 方式 str

裝飾器:本質是函數(裝飾其他函數-->為其他函數添加功能)
原則:1.不能被修改裝飾的源代碼
2、不能修改被裝飾的函數的調用方式
知識儲備:
1、函數即“變量”
2、高階函數
3、嵌套函數
高階函數+嵌套函數 = 裝飾器

高階函數:
a.把一個函數名當做實參傳給另一個函數

技術分享圖片

b.返回值中包含函數名
嵌套函數:
技術分享圖片

僅用高階函數實現的裝飾器

技術分享圖片

高階函數+嵌套函數:實現裝飾器。

裝飾器函數定義時,通過將需要裝飾的函數(裝飾器的形參)放在嵌套函數裏面,嵌套在內層的函數只進行函數定義,不進行函數的調用(內含的被裝飾的函數就不會運行)。然後將裝飾後的的嵌套函數地址返回。

技術分享圖片
裝飾器用法:想裝飾什麽函數,就在哪個函數上一行頭部 @裝飾器名稱

@裝飾器名稱

函數名

即:如下寫法的簡化寫法

foo = deco(foo)
foo()

Python3裝飾器