Python 中函数的 收集参数 机制
定義函數(shù)的時(shí)候,在參數(shù)前加了一個(gè) * 號(hào),函數(shù)可以接收零個(gè)或多個(gè)值作為參數(shù)。返回結(jié)果是一個(gè)元組。
傳遞零個(gè)參數(shù)時(shí)函數(shù)并不報(bào)錯(cuò),而是返回一個(gè)空元組。但以上這種方法也有局限性,它不能收集關(guān)鍵字參數(shù)。
對(duì)關(guān)鍵字參數(shù)進(jìn)行收集的另一種 收集參數(shù) 機(jī)制:使用兩個(gè)星號(hào) ( ** ) ,用法同上。最后返回一個(gè)以參數(shù)名為鍵、參數(shù)值為鍵值的字典。
*和 **是可以一起使用的,返回特定的結(jié)果。
參數(shù)收集的用處之一是使我們編寫(xiě)函數(shù)時(shí)不用頭疼將 N 多個(gè)參數(shù)都塞在一個(gè)括號(hào)里,既美觀又省事。用處之二便是:
-
*:可以將一系列值存放進(jìn)一個(gè)元組變量里,可用該元組變量名加一個(gè) * 號(hào)作為參數(shù)傳遞給一個(gè)正被調(diào)用的函數(shù),而后該函數(shù)就可以自由地對(duì)這些值進(jìn)行一系列合法的操作。
-
**:同理,只不過(guò)變量存放的方式是字典。
Python的4種傳值的方式,必選傳參 func(param)、默認(rèn)傳參func(param=value)、可選傳參func(*param)、關(guān)鍵字傳參func(**param)
必選參數(shù) func(param):
定義函數(shù)時(shí)的參數(shù)個(gè)數(shù),順序已定義好,在調(diào)用函數(shù)調(diào)時(shí)的參數(shù)個(gè)數(shù)、順序必須一致,不能多,也不能少,也不能亂(和之前的順序一致),因此叫必選參數(shù),這是最常用的傳參方式
''' 遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書(shū)! ''' def test(param1,param2,param3):print param1,param2,param3test(1,"hello",True)test(True,1,"hello")執(zhí)行結(jié)果:
1 hello TrueTrue 1 hello默認(rèn)參數(shù)func(param=value):
# 1、定義函數(shù)時(shí),已為參數(shù)設(shè)定一個(gè)默認(rèn)值,假如調(diào)用函數(shù)時(shí)不傳參,在函數(shù)內(nèi)部使用參數(shù)時(shí)的值則為默認(rèn)值,傳參時(shí)則和必選參數(shù)一樣使用# 2、如果必選參數(shù)和默認(rèn)參數(shù)同時(shí)存在,則默認(rèn)參數(shù)必須跟在必選參數(shù)后面# 3、如果有多個(gè)默認(rèn)參數(shù),調(diào)用時(shí)順序可以不一致,但是必須要顯式表明是哪個(gè)默認(rèn)參數(shù),例如 param2=100,但是建議統(tǒng)一按照函數(shù)定義的順序進(jìn)行使用def test(param1,param2=100,param3=True):print param1,param2,param3 test(1)# 默認(rèn)參數(shù)可以不傳 test(1,"hello",False)# 多個(gè)默認(rèn)參數(shù)時(shí),調(diào)用順序一致 test(1,param3=False,param2="hello")# 調(diào)用順序也可以不一致執(zhí)行結(jié)果:
1 100 True1 hello False1 hello False總結(jié)
以上是生活随笔為你收集整理的Python 中函数的 收集参数 机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python中按指定长度分割字符串并反转
- 下一篇: Python操作Oracle数据库:cx