python裝飾器原理及相關操作

2022-09-17 04:09:13 字數 1502 閱讀 3914

python裝飾器,簡單的說就是用於操作底層**的**,在不改變底層**函式的情況下對底層**進行驗證操作等

def

func():

print("

歡迎光臨!!!")

print("

",func)

func()

列舉乙個簡單的web頁面呼叫例子

1

#做登入驗證

2def

login(func):

3print("

登入成功")

4return

func56

defindex(name):

7print("

歡迎【%s】光臨首頁!

"@name)

8def

tv(name):

9print("

歡迎【%s】光臨電視頁!

"@name)

10def

tv():

11print("

歡迎光臨電視頁!")

1213 tv=login(tv)

14 tv()

由上述**可知,為了進行登入驗證,需要進行額外的操作,改變了使用部門的操作,有沒有辦法直接讓使用部門使用tv()來呼叫驗證呢?

1

ef login(func):

2def inner(*args):

3print("

登入成功")

4 func(*args)

5return

inner67

@login

8def

index(name):

9print("

welcome %s to index

"%name)

10@login

11def

tv(name,password):

12print("

welcome %s to tv

"%name)13#

def tv():14#

print("welcome %s to tv")

15def

moive(name):

16print("

welcome %s to movie

"%name)

1718

#tv=login(tv)19#

tv()

20 tv("

eric

","123")

21 index("

eeric

")

函式執行:函式首先順序執行login,然後調轉到@login,將index資訊傳入記憶體,返回index所呼叫的inner 函式,然後繼續執行下面的函式,返回tv所呼叫的內部函式inner,繼續執行下面的moive函式,然後繼續執行下方呼叫,返回到inner繼續執行inner內部語句,並呼叫函式的執行;

裝飾器的作用:即不改變原有底層函式的內部邏輯,來實現對底層函式的操作

Python裝飾器及相關案例

裝飾器本質上是乙個函式,該函式用來處理其他函式,它可以讓其他函式在不需要修改 的 前提下增加額外的功能,裝飾器的返回值也是乙個函式物件。它經常用於有切面需求的場景,比如 插入日誌 效能測試 事務處理 快取 許可權校驗等應用場景。為什麼需要裝飾器?寫 要遵循 開放封閉 原則,雖然在這個原則是用的物件導...

python裝飾器原理 Python裝飾器原理

裝飾器 decorator 是物件導向設計模式的一種,這種模式的核心思想是在不改變原來核心業務邏輯 的情況下,對函式或類物件進行額外的修飾。python中的裝飾器由python直譯器直接支援,其定義形式如下 decorator def core service 要理解上述 的含義,我們從自定義函式裝...

python中裝飾器的原理及用法

要想理解python中裝飾器的原理首先要明白一下兩點 2 裝飾器的的作用等價於callfucn decfucn callfucn 這兩點在後期的分析中要牢牢的記住。以一段 為例 def decofun func def deco a,b print before callfunc called.fu...