Python學習——函數、參數、參數解構

可變參數
有多個數,需要累加求和
def add(nums):
sum = 0
for x in nums:
sum += x
return sum
add([1,3,5])、add((2,4,6))
傳入一個可迭代對象,迭代元素求和,可變參數 ,一個形參可以匹配任意個參數

位置參數的可變參數
有多個數,需要累加求和
在這裏插入圖片描述

在形參前使用*表示該形參是可變參數,可以接收多個實參
收集多個實參爲一個tuple

關鍵字參數的可變參數
配置信息打印
在這裏插入圖片描述
形參前使用**符號,表示可以接收多個關鍵字參數
收集的實參名稱和值組成一個字典

總結
有位置可變參數和關鍵字可變參數
位置可變參數在形參前使用一個星號*
關鍵字可變參數在形參前使用兩個星號**
位置可變參數和關鍵字可變參數都可以收集若干個實參,位置可變參數收集形成一個tuple,關鍵字可變參數收集形成一個dict
混合使用參數的時候,可變參數要放到參數列表的最後,普通參數需要放到參數列表前面,位置可變參數需要在關鍵字可變參數之前
在這裏插入圖片描述
keyword-only參數(Python3加入)
如果在一個星號參數後,或者一個位置可變參數後,出現的普通參數,實際上已經不是普通的 參數了,而是keyword-only參數
在這裏插入圖片描述
args可以看做已經截獲了所有的位置參數,x不使用關鍵字參數就不可能拿到實參

def fn(**kwargs, x) ,直接報語法錯誤 可以理解爲kwargs會截獲所有的關鍵字參數,就算你寫了x=5,x也永遠得不到這個值,所以語法錯誤

keyword-only 參數另一種形式
def fn(*, x,y):
print(x,y)
fn(x=5,y=6)
*號之後,普通形參都變成了必須給出的keyword-only 參數
在這裏插入圖片描述

參數規則
參數列表參數一般順序是,普通參數、缺省參數、可變位置參數、keyword-only參數(可帶缺 省值)、可變關鍵字參數
代碼應該易讀易懂,而不是爲難別人 .請按照書寫習慣定義函數參數

參數解構
在這裏插入圖片描述
在這裏插入圖片描述

給函數提供實參的時候,可以在集合類型前使用或者**,把集合類型的結構解開,提取出所有 元素作爲函數的實參
非字典類型使用
解構成位置參數
字典類型使用**解構成關鍵字參數
提取出來的元素數目要和參數的要求匹配,也要和參數的類型匹配

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章