必傳參數:平時最常用的,必傳确定數量的參數
預設參數:在調用函數時可以傳也可以不傳,如果不傳将使用預設值
可變參數:可變長度參數
關鍵字參數:長度可變,但是需要以 key-value 形式傳參
add 函數有兩個參數,第一個參數是 a,第二個參數是 b
傳入的兩個整數按照位置順序依次賦給函數的參數 a 和 b,參數 a 和參數 b 被稱為位置參數
根據函數定義的參數位置來傳遞參數,要求傳遞的參數與函數定義的參數兩者一一對應
如果 “傳遞的參數個數” 不等于 “函數定義的參數個數”,運作時會報錯
使用預設參數,可以簡化函數的調用,尤其是在函數需要被頻繁調用的情況下
聲明函數時,當同時存在必傳參數和預設參數,形參的順序必須是 (必傳參數 , 預設參數),不能預設參數在前
假設需要一個 2 個數的求和函數
此時,有需要一個 3 個數的求和函數
那麼,如果還需要一個 4 個數的求和函數,可以通過上述方式再加一個函數,但顯然很麻煩
是以,可變參數誕生了
希望隻編寫一個計算求和的函數 add,但函數的參數個數是不确定的,這樣就可以複用了
該函數被設定為能夠接受可變數量的參數
args 的類型是元組
調用該函數時,所有的參數被合并成一個元組
合并後的元組被指派給 args,通過周遊 args 可以通路傳遞的參數
args是一個元組類型
可變參數可不傳,也可以傳很多個值
*(2, 3, 4, 5) ,在元組or清單前面加一個 * ,代表将裡面的每個元素獨立出來,單獨作為一個形參傳進去,也稱為元組解包
不懂*(1,2,3)可以看看這段代碼
可變參數之前的參數不能指定參數名
必傳參數跟在關鍵字參數後面是不允許的
函數傳入實參時,可變參數(<code>*</code>)之後的參數必須指定參數名,否則就會被歸到可變參數之中
c 輸出了 None ,沒有拿到參數值
Python 允許調用函數時,以 “參數名 = 參數值” 的形式傳遞參數
"參數名 = 參數值" 形式的參數,例如 a = 1 和 b = 2,被稱為關鍵字參數
在參數前加上符号 ** 參數表示函數可以接收關鍵字參數
該函數被設定為能夠接受關鍵字參數
kwargs 的類型是字典
調用該函數時,所有的關鍵字參數被合并成一個字典
合并後的字典被指派給 kwargs,通過通路 kwargs 可以通路參數名和參數值
kwargs 是一個字典類型
關鍵字參數可傳可不傳
傳值的時候需要傳鍵值對,如果要傳dict需要在前面加上 ** ,表示将這個dict的所有key-value當成獨立的關鍵字參數(變成 key = value)傳入到 kwargs,而修改 kwargs 不會影響原來的 dict
不用 dict 的話也可以直接 key=value 的寫法,如果和預設參數重名,若前面沒有傳值的話,會當成預設參數傳值;若有的話會直接報錯
聲明函數時,預設參數不可以放在關鍵字參數後面
**dict ,也叫字典解包
這是 requests.get() 方法的最終調用函數,可以看到除了method、url是必傳參數,還能通過 kwargs 傳很多個參數
https://www.cnblogs.com/poloyy/p/15096333.html