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