不显示参数名_第51p,万能参数与返回值,Python中函数的返回值
大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第51篇文章,第三階段的課程:Python進階知識:詳細講解Python中的函數(四)====>函數的參數與返回值(下篇)。
函數是非常重要的內容,在這里,我會用10篇左右的文章詳細講解Python中函數定義與使用的規則。
閱讀提醒:建議小白先看一遍:【計算機基礎知識】和【Python基礎知識】課程,否則你不一定聽得懂!
我們接著上一篇文章講函數傳參與函數的返回值。
一、Python中函數的傳參規則
1、一般傳參規則
有幾個形參就傳入幾個實參,按照定義階段為準;
如果所有類型的參數都有,則按照以下規則進行傳參:
函數名(位置參數,關鍵字參數/默認參數,*args,**kwargs)
2、不定長參數的傳參
如果在函數定義時,定義了*args和**kwargs這些不定長形參,在進行傳參時,遇到列表[]、字典{}這類數據時,會自動將相相應數值傳入到*args與**kwargs這兩個形參中;
這是Python內置的強制規則。
3、解壓傳參
解壓傳參指的是,定義參數時并沒有定義*args和**kwargs這兩種不定長參數,但卻傳入了列表或元組或字典這類數據;
有人會覺得,沒有定義不定長參數,怎么傳列表、字典?這里用到了解壓傳參的功能。
a. 列表的解壓傳參:
定義函數:函數名(位置參數1,位置參數2)
實例化函數:
X = [1,2];
函數名(*x)
b. 字典的解壓傳參:
定義函數時:函數名(參數1,參數2)
實際傳參時:函數名(**{參數1:11,參數2:22})
c. 還有一種情況是,定義函數時,是這樣的:
函數名(位置參數1,位置參數2,*args)
實際傳參時,是這樣的:
X = [1,2,3,4,5,6]
函數名(*x)
解壓傳參的底層邏輯是這樣的:【重要】
1、傳參時遇到一個星或兩個星(*或**)時,會相當于執行一次for循環;
2、將傳入的列表或字典進行for循環取值;
3、再將列表或字典中取出來的值,按照位置參數傳參的方式,從左到右依次傳;傳參過程中也會遵循一般傳參規則,即有幾個形參,就傳幾個實參。
4、如果傳入的是字典,則用兩個星傳參的方式進行傳參,最后會得到的時字典key對應的value。
例:def fun(x,y,z)
實參:fun(*[11,12,13])
這里會嚴格按照位置參數的數量進行傳參,返回的結果是,x=11,y=12,z=13。
4、萬能傳參的方法
萬能傳參是指,不管你傳入的是1個或1萬個參數,傳入的參數是列表、元組、字典,都可被函數接收;這里利用的是不定長參數的特點;具體使用方式如下:
定義函數時:函數名(*argw,**kwargs)
這種傳參方式,也是我們經常使用的傳參方式。
注:*args返回的是元組,**kwargs返回的是字典。
5、設置傳參時的提示
我們在使用Python內置的函數時,會看到有相應的英文提示,告訴我們這個參數應該傳入什么樣的數據類型;我們自己在定義函數時也可以設置提示,使用語法如下:
函數名(參數1:“這里傳入數字)
例如:def fun(x:”please input int”):
當函數被使用時,會顯示相應的提示。
二、Python中函數的3種返回值
函數中,只要執行了一次return語句,無論后面有多少語句都不會再往下執行;return是函數結束的標志;Python中的函數返回值分為3種:
1、沒有return,默認返回None;
2、返回單個值,語法:return 值;
3、返回多個值,用逗號分隔開,會被return返回成元組;
如:return x,y;會返回成(x,y);
返回元組的主要原因是利用元組的不可變特性,這樣函數的返回值就不會有被修改的可能。
4、規定函數返回值數據類型
我們可以在定義函數時,規定函數的返回值數據類型,具體方法如下:
函數名(參數:)->:int
例:def fun(x): ->:int
這里給使用者提示了fun函數的返回值為int(整數);不過,我們一般很少使用這種方式定義函數。
補充兩點前面漏寫的:
a. Python中的函數名的命名規則和變量名的命名規則一樣;函數名的命名風格:純小寫字母;
b. 函數的功能注釋,一般都寫在函數名下面用3引號注釋,一般看需求確定是否要詳細寫注釋。
以上是本期內容,如果有表達不對的內容,歡迎您的留言、斧正,我們一起天天向上。
感謝您的閱讀,您的三連【關注、點贊、收藏】就是對我最大的支持,謝謝!
本文由楊數Tos原創,歡迎關注,帶你一起長知識。
總結
以上是生活随笔為你收集整理的不显示参数名_第51p,万能参数与返回值,Python中函数的返回值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用FreeRTOS进行性能和运行时分析
- 下一篇: 常用知识总结——模板Template