Python 函式高階

2021-10-01 05:37:16 字數 3220 閱讀 7929

1.1預設引數概念

預設引數指函式/方法在定義時為形參賦值,對應的形參稱為預設引數。

預設引數是乙個引數定義期的概念,與呼叫無關。

1.2預設引數作用

如果引數定義預設引數,在呼叫函式/方法時,未對該引數進行傳值,則使用預設值作為該引數的值。

1.3預設引數基本語法

定義格式:

def 函式名(形參1 = 值1,…):

函式體

……

呼叫格式一(同普通引數,無特殊):

函式名(實參) 使用實參作為形參的值,不使用預設值

呼叫格式二:

函式名() 使用預設值作為形參的值

1.4注意事項

1.預設引數的定義必須在位置引數的右側

2.預設引數在呼叫傳值時,按照位置引數進行對待,從左至右依次賦值,不能跳過左側的某個引數直接為後面的引數賦值

2.1關鍵字引數概念

函式/方法在呼叫時為指定名稱的形參進行賦值,對應實參稱關鍵字引數。

關鍵字引數是乙個引數呼叫期的概念,與定義無關。

2.2關鍵字引數作用

按名稱確認實參為指定的形參賦值。

2.3關鍵字引數基本語法

定義格式(同普通引數定義,無特殊):

def 函式名(形參 ,…):

函式體

……

呼叫格式:

函式名( 形參名 = 實參)

2.4注意事項

1.關鍵字引數必須出現在位置引數的後面

2.不允許使用關鍵字引數對同乙個形參進行多次賦值

3.關鍵字引數既可以為位置引數賦值,也可以為預設引數賦值。通常使用關鍵字引數解決預設引數選擇性賦值問題。

3.1可變引數概念

函式/方法在定義時,定義乙個特殊的形參,用於接收呼叫時傳入的任意數量的實參,對應的形參稱為可變引數。

可變引數是乙個引數定義期與呼叫期都有效的概念。

3.2可變引數作用

簡化函式定義過程,定義可以接收無數個實參的形參

形參接受到的資料,無論數量多少,包裝成乙個元組物件

3.3可變引數基本語法

定義格式:

def 函式名(*args ,…):

函式體

……

呼叫格式(同普通引數,無特殊):

函式名( 實參1,…… )

3.4注意事項

1.可變引數在乙個函式/方法定義中只能出現乙個

2.可變引數只能出現在位置引數的後面,位置引數在左側,可變引數在右側

3.關鍵字引數只能出現在位置引數的後面,賦值時必須使用關鍵字引數傳值,否則值會被可變引數接收

4.定義函式的引數時,先定義位置引數,再定義可變引數,最後定義預設引數

4.1字典引數概念

函式/方法在定義時,定義乙個特殊的形參,用於接收未定義直接使用的關鍵字引數,對應的形參稱為字典引數。

4.2字典引數作用

簡化函式定義過程,接收未定義直接使用的關鍵字引數。

在多層級呼叫間進行關鍵字引數的逐級傳遞。

未定義的關鍵字引數,無論數量多少,接收後包裝成乙個字典物件。

4.3字典引數基本語法

定義格式:

def 函式名(**kwargs ,…):

函式體

……

呼叫格式:

函式名( 未定義的變數名1 = 實參1,未定義的變數名2 = 實參2,…… )

4.4注意事項

1.字典引數在乙個函式/方法定義中只能出現乙個

2.定義函式的引數時,先定義位置引數,再定義可變引數,然後定義預設引數,最後定義字典引數

4.5其他

所有的容器都支援解包操作,格式:*容器變數名

5.1遞迴函式概念

函式/方法在執行過程**現了對自身函式/方法的呼叫,稱該過程為遞迴呼叫,稱這樣的函式為遞迴函式。

5.2遞迴函式基本語法

同普通函式

5.3遞迴函式定義要求

1.函式體中具有對自身函式的呼叫

2.函式體中具有明確的函式執行結束判定條件

5.4遞迴函式呼叫要求

python語言中函式呼叫最大層級為1000層,超過該層級,程式將報錯(不同語言設定不同)

6.1匿名函式概念

匿名函式即沒有名稱的函式,在python語言中,匿名函式是使用lambda關鍵字定義的乙個特殊表示式,也稱為lambda表示式。

6.2匿名函式基本語法

格式一:

定義: 函式名 = lambda 形參 : 返回值

呼叫: 結果 = 函式名(實參)

格式二:

定義並呼叫: 結果 = (lambda 形參 : 返回值)(實參)

6.3匿名函式特殊語法

無參格式: 結果 = (lambda :返回值)()

多返回值格式: 無,可使用資料儲存模型返回多個資料

無返回值格式: 無,必須有具體值或結果為none

python 函式高階 python 函式高階

形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...

Python高階 函式高階

閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...

python 函式 高階函式

filter 函式是 python 內建的另乙個有用的高階函式,filter 函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如判斷奇偶數 def...