python中函數參數*args和**kw的區別


1.函數與參數(實參)  

  在python中創建函數是def,創建函數名是def f(),f函數名字,def f(a,b),這里的a,b是兩個參數,函數名是自定義的,參數也是自定義,隨意就好。看圖如下效果:

  

  這里f(1,2)是實參,然后調用上面的函數。

  下面講解下*args和**kw的區別。

2.*args

  

  這里的*后面的值是自定義的,只要不是數字就行,定義成*abc,*ccc都可以,len()是函數,它的意思是返回字符串長度。然后前面的a,b是普通參數,print a print b就是回顯1,2,因為我調用f(1,2,3,4,5),除去兩個普通參數,剩余的三個值為4,5,6,顧名思義長度為3。

3.**kw

  

  **和*自定義都是一樣的,**后面也是自定義,后面不是數字就行。我這里定義的是**d,這里就和*不一樣,這里你們會發現這里多了個循環,然后在print ,你們有可能看不懂,你們把眼光看到底下的f()的函數調用,調用最后的答案為一個鍵值對的形式,然后再看上面的print x+':'+str(c[x])就會變得輕松,你們會說str是什么,str()是一個函數,他的含義是可以將數字型變量或常量改變成字符型變量或常量。所以當我們調用他時,name='zhangsan'這里就要加引號,因為這是字符串,而age=13卻不要加引號,因為13是整數類型。

4.*和**聯合用法

  

  因為我前面分開講了*和**的用法,合並起來,他們不變,位置上沒有變化。當你看到這里你會說*和**有什么區別,是的,他們的區別在於,*是包含其他數字的,在這里面*c是一個tuple,而**d在這里包含的是字符串或者根據print x+':'+str(d[x]),判斷類型為xx=xx的,包含於d里面,這樣我們就能很清晰的去區分並且學習它!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM