默認參數(shù):定義函數(shù)的時候給定變量一個默認值?! ef num(age=1): 位置參數(shù):調(diào)用函數(shù)的時候根據(jù)定義函數(shù)時的形參位置和實參位置進行引用。 關(guān)鍵字參數(shù):如果定義的函數(shù)中含有關(guān)鍵字參數(shù),調(diào)用函數(shù)時必須要傳如該關(guān)鍵字對應(yīng)的實參。 不定長參數(shù):在定義函數(shù)的時候不確定傳入的參數(shù)的數(shù)量(可能是0個或多個) def num(*args,**args): (不定長參數(shù)的標(biāo)志符號是*和**,args和kwargs只是變量的名字,可以改為任意的變量如(*num,**kwnum)) *+變量名1,可以接受被其他參數(shù)接受后剩下的任意的形參(不包括賦值語句),放進一個元組里,這個元組的名字是前面的變量名1(所以位置參數(shù)必須在此參數(shù)之前) **+變量名2,可以接受被其他參數(shù)接受后剩下的任意賦值語句,放進一個字典中,這個字典的名字是前面的變量名2(所以關(guān)鍵字參數(shù)和默認參數(shù)必須在此參數(shù)之前,*+變量名也要在此參數(shù)之前) 測試上面的總結(jié)是否正確
最后總結(jié) 調(diào)用函數(shù)傳遞實參的時候,先傳變量/定量,再傳賦值語句(num_0(1,2,3,4,5,6,7,city='hangzhou',name='jack',age=18,country='haidian')) 定義函數(shù)的時候直接按此順序定義形參(def num_0(a,b,c,*args,city='beijing',name,**kwnum):)(位置參數(shù),*變量名,默認參數(shù),關(guān)鍵字參數(shù),**變量名) 接下來討論一下不定長參數(shù)中的 * 和 ** 還有什么用處 1,當(dāng)在函數(shù)的形參中使用時(和上面的例子相同) **t:將所有的其他位置的實參(賦值語句)獲取,并將它們打包到字典中,并賦值給此參數(shù) 2,當(dāng)在調(diào)用函數(shù)的時候使用(實參中) 1,2 **dict_a:將字典中的鍵值對,當(dāng)做函數(shù)調(diào)用的關(guān)鍵字參數(shù) 1,2 3,在匹配和for循環(huán)中 >>>x, *xs = (1, 2, 3, 4)>>>xs[2, 3, 4] >>>x, *xs = [1, 2, 3, 4]>>>xs[2, 3, 4] >>> *xs, x = (1, 2, 3, 4) >>> xs [1, 2, 3] >>> x 4 >>> x, *xs, y = (1, 2, 3, 4) >>> x 1 >>> xs [2, 3] >>> y 4 4,可以用于合并字典 *t 表示“獲取此函數(shù)的所有其他位置參數(shù),并將它們作為元組打包到此參數(shù)中
|
|
來自: LibraryPKU > 《Python》