預設引數指函式/方法在定義時為形參賦值,對應的形參稱為預設引數。預設引數是乙個引數定義期的概念,與呼叫無關。
如果引數定義預設引數,在呼叫函式/方法時,未對該引數進行傳值,則使用預設值作為該引數的值。
定義格式:
def 函式名(形參1 = 值1,...):
函式體......
複製**
呼叫格式一(同普通引數,無特殊):
函式名(實參) 使用實參作為形參的值,不適用預設值
複製**
呼叫格式二:
函式名() 使用預設值作為形參的值
複製**
1.預設引數的定義必須在位置引數的右側
2.預設引數在呼叫傳值時,按照位置引數進行對待,從左至右依次賦值,不能跳過左側的某個引數直接為後面的引數賦值
函式/方法在呼叫時為指定名稱的形參進行賦值,對應實參稱關鍵字引數。關鍵字引數是乙個引數呼叫期的概念,與定義無關。
按名稱確認實參為指定的形參賦值。
定義格式(同普通引數定義,無特殊):
def 函式名(形參,...):
函式體......
複製**
呼叫格式: 函式名(形參名 = 實參)
1.關鍵字引數必須出現在位置引數的後面
2.不允許使用關鍵字引數對同乙個形參進行多次賦值
3.關鍵字引數既可以為位置引數賦值,也可以為預設引數賦值。通常使用關鍵字引數解決預設引數選擇性賦值問題。
函式/方法在定義時,定義乙個特殊的形參,用於接收呼叫時傳入的任意數量的實參,對應的形參稱為可變引數。 可變引數是乙個引數定義期與呼叫期都有效的概念。
簡化函式定義過程,定義可以接收無數個實參的形參。形參接受到的資料,無論數量多少,包裝成乙個元組物件。
定義格式:
def 函式名(*args,...):
函式體......
複製**
呼叫格式(同普通引數,無特殊):
函式名(實參1,......)
複製**
1.可變引數在乙個函式/方法定義只能出現乙個
2.可變引數只能出現在位置引數的後面,位置引數在左側,可變引數在右側。
3.預設引數只能出現在位置引數的後面,賦值時必須使用關鍵字引數傳值,否則值會被可變引數接收
4.定義函式的引數時,先定義位置引數,在定義可變引數,最後定義預設引數
函式/方法在定義時,定義乙個特殊的形參,用於接收未定義直接使用的關鍵字引數,對應的形參稱為字典引數。
簡化函式定義過程,接收未定義直接使用的關鍵字引數。在多層級呼叫間進行關鍵字引數的逐級傳遞。 未定義的關鍵字引數,無論數量多少,接收後包裝成乙個字典物件。
定義格式:
def 函式名(**kwargs,...):
函式體......
複製**
呼叫格式: 函式名(未定義的變數名1 = 實參1,未定義的變數名2 = 實參2,...)
1.字典引數在乙個函式/方法定義中只能出現乙個
2.定義函式的引數時,先定義位置引數,再定義可變引數,然後預設引數,最後定義字典引數
所有的容器都支援解包操作,格式:*容器變數名。部分支援自動組包,外部手動新增元組後,也可自動組包,完成執行
函式/方法在執行過程**現了對自身函式/方法的呼叫,稱該過程為遞迴呼叫,稱這樣的函式為遞迴函式。
1.函式體中具有對自身函式的呼叫
2.函式體中具有明確的函式執行結束判定條件
python語言中函式呼叫最大層級為1000層(含project函式,預設1000,可更改),超過該層級,程式將報錯
匿名函式即沒有名稱的函式,在python語言中,匿名函式是使用lambda關鍵字定義的乙個特殊表示式,也成為lambda表示式。
格式一:
定義:函式名 = lambda 形參: 返回值
呼叫:結果 = 函式名(實參)
複製**
格式二:
定義並呼叫:結果 = (lambda 形參:返回值)(實參)
複製**
無參格式:
結果 = (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...