python的 修飾符

2022-05-11 18:31:55 字數 1289 閱讀 3004

『@』引用已有的函式,對下面的函式進行修飾。引用函式必須放在修飾函式的上面,引用函式的返回值,返回給被修飾的函式

乙個簡單的栗子:

1

deffuna(fn):

2print('a'

)    # 輸出a

3 fn() #

執行傳入的fn引數  輸出b

4return

'fkit

'  # 返回給funb

5'''

6下面裝飾效果相當於:funa(funb),

7funb將會替換(裝飾)成該語句的返回值;

8由於funa()函式返回fkit,因此funb就是fkit

9'''

10@funa

11def

funb():

12print('b'

)13print(funb) #

此時再執行funb函式輸出的是fkit

這裡funa是引用的函式,funb是被修飾的函式。@修飾符的功能就是把funb當做引數傳遞給funa,然後把funa的返回值返回到funb

這意味著程式要完成兩步操作:

將 funb 作為 funa() 的引數,也就是上面**中 @funa 相當於執行 funa(funb)。

將 funb 替換成上一步執行的結果,funa() 執行完成後返回 fkit,因此 funb 就不再是函式,而是被替換成乙個字串。

輸出如下:

a

bfkit

當然,也可以返回乙個函式,看下面這個栗子:

1def

my_decorator(func):

2暫時跳過這個函式

3'''

decorator

'''4

print('

decorated function...')

5print('

123')6

789 @my_decorator #

decorator(test())

10def

test():

11"""

testword

"""12

print('

test function')

1314

15test()

16print("

函式名:%s

可以看出,最先輸出了第五行的『123』,然後是第四行的『decorated function...』,最後是第十六行的函式名,下面捋一下**的執行順序:

'test function'

python 修飾符 python 修飾符

修飾符基礎 閉包 什麼是閉包呢?標準的概念大家可以看wikipedia上的解釋 舉個例子 def do add base def add increase return base increase return add do add函式裡巢狀了乙個內層函式add,這個內層函式就是乙個閉包,其實可以也...

python 修飾符 python訪問修飾符

許可權訪問 偽許可權,只是壓縮時按規則換了變數名,python 的哲學是假定使用者都會使用 xx 以單下劃線開頭的表示的是protected型別的變數。即保護型別只能允許其本身與子類進行訪問。若內部變數標示,如 當使用 from m import 時,不會將以乙個下劃線開頭的物件引入 成俗約定,不做...

python修飾符用法 python修飾符

乾貨大禮包!21天帶你輕鬆學python 文末領取更多福利 本課程來自於千鋒教育在阿里雲開發者社群學習中心上線課程 python入門2020最新大課 主講人姜偉。21天帶你輕鬆學python python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。大資料 人工智慧時代首選程式...