Python閉包and裝飾器之多個裝飾器的使用

2021-10-10 04:54:04 字數 752 閱讀 3821

def make_div

(func):""

"對被裝飾的函式的返回值 div標籤"

"" def inner

(*args,

**kwargs)

:return""+

func()

+""return inner

def make_p

(func):""

"對被裝飾的函式的返回值 p標籤"

"" def inner

(*args,

**kwargs)

:return""+

func()

+""return inner

# 裝飾過程:

1 content =

make_p

(content)

2 content =

make_div

(content)

# content = make_div(make_p(content))

@make_div

@make_p

def content()

:return

"人生苦短"

result =

content()

print

(result)

**說明:

多個裝飾器的裝飾過程是: 離函式最近的裝飾器先裝飾,然後外面的裝飾器再進行裝飾,由內到外的裝飾過程

python之閉包和裝飾器

閉包函式必須滿足兩個條件 1.函式內部定義的函式 2.包含對外部作用域而非全域性作用域的引用 如下閉包函式 def callfunc n 1 def show print show n return show s callfunc s 程式在執行時,callfunc 函式返回了內部定義的 show ...

python之裝飾器和閉包

在了解裝飾器之前,我們先來了解一下閉包,因為裝飾器的本質也是閉包。閉包 乙個函式定義中引用了函式外定義的變數,並且該函式可以在其定義環境外被執行,這樣乙個函式稱之為閉包。概念比較抽象,我們直接看 def outer func loc list def inner func name print lo...

Python 裝飾器 ,閉包

1 裝飾器 不改變被裝飾的函式情況下附加一些功能 本質是函式,用於裝飾其他函式,附加一些本身所沒有的功能 實質 是乙個函式 引數 是你要裝飾的函式名 並非函式呼叫 返回 是裝飾完的函式名 也非函式呼叫 作用 為已經存在的物件新增額外的功能 特點 不需要對物件做任何的 上的變動 例1 計算執行時長 i...