廖雪峰python教程學習 裝飾器 小結

2021-10-06 21:14:45 字數 1247 閱讀 4877

廖雪峰老師的python教程

在**執行期間動態增加功能的方式,稱為裝飾器

本質上,裝飾器是乙個可以返回函式的高階函式

最基本的可以定義如下:

def

log(func)

: @functools.wraps(func)

def(

*args,

**kw)

:print

('call %s():'

% func.__name__)

#func.__name__可以顯示函式名稱

return func(

*args,

**kw)

使用裝飾器,需要了解@語法

@log

defnow()

:print

('2015-3-25'

)now(

)#call now():

#2015-3-25

@語法的規則是,遇到@修飾的函式,會先執行下一行的函式,將其作為@行語句函式的引數,最後返回給下一行函式。

例如在本段語句中

@log 等效於 now = log(now)

所以會先將now函式作為引數傳入log函式中,執行log函式print引數的函式名稱的任務後,再執行now函式本身的內容。

如果要讓@語句執行的函式自帶引數,則需要讓裝飾器具有三層函式,如:

import functools

deflog

(text)

:def

decorator

(func)

: @functools.wraps(func)

def(

*args,

**kw)

:print

('%s %s():'

%(text, func.__name__)

)return func(

*args,

**kw)

return decorator

@log(

'execute'

)def

now():

print

('2015-3-25'

)#execute now():

#2015-3-25

此時,@log(『execute』) 等效於 now = log(『execute』)(now)

python廖雪峰教程 學習筆記

如何用字元來描述字元 d匹配數字 digit w匹配字母或數字 word s可以匹配空格 space 表示任意個字元,表示至少乙個字元 表示0個或1個字元,表示n個字元,表示n m個字元 可以匹配任意字元 例如 kongxiangyu w如何做到更精確的匹配?規定數字 字母或者下劃線 0 9a za...

廖雪峰python教程學習筆記(函式)

1.max函式可以接收任意多個引數,並返回最大的那個 2.函式名其實就是指向乙個函式物件的引用,完全可以把函式名賦給乙個變數,相當於給這個函式起了乙個別名 3.在python中,定義乙個函式要用def語句,依次寫出函式名 括號 括號中的引數和冒號,然後在縮排塊中編寫函式體,函式的返回值用return...

廖雪峰python教程學習 sorted小結

廖雪峰老師的python教程 我們常用類似於氣泡排序 快速排序等進行數字上的排序,在python中,我們可以用sorted函式對字串與字典中的內容進行比較。sorted 36,5,12,9 21 排序後 21,12,5,9,36 此外,sorted函式可以通過設定key的形式限定排序方式,例如 so...