函數(shù)的參數(shù)

函數(shù)的參數(shù):

關(guān)鍵詞:必選參數(shù)妒潭、默認參數(shù)(a=b)焙蹭、可變參數(shù)(*args)、關(guān)鍵字參數(shù)(**kw)次泽、命名關(guān)鍵字參數(shù)(, *,)

定義函數(shù)的時候穿仪,我們把參數(shù)的名字和位置確定下來席爽,函數(shù)的接口定義就完成了意荤。對于函數(shù)的調(diào)用者來說,只需要知道如何傳遞正確的參數(shù)只锻,以及函數(shù)將返回什么樣的值就夠了玖像,函數(shù)內(nèi)部的復(fù)雜邏輯被封裝起來,調(diào)用者無需了解齐饮。

函數(shù)的參數(shù)可以是:整形捐寥、浮點型、字符串祖驱、list握恳、tuple、dict

默認參數(shù):默認參數(shù)可以簡化函數(shù)的調(diào)用捺僻。

設(shè)置默認參數(shù)需要注意:

一是必選參數(shù)在前乡洼,默認參數(shù)在后,否則Python的解釋器會報錯

二是如何設(shè)置默認參數(shù)匕坯?當函數(shù)有多個參數(shù)時束昵,把變化大的參數(shù)放前面,變化小的參數(shù)放后面葛峻。變化小的參數(shù)就可以作為默認參數(shù)锹雏。

默認參數(shù)必須指向不變對象!

可變參數(shù):

詳情咨詢:

http://www.cnblogs.com/elyw/p/python_note_func_args.html

假如說參數(shù)個數(shù)不確定的情況下术奖,可以用list礁遵、tuple傳參

也可以用可變參數(shù)傳參,可變參數(shù):*args采记,這樣佣耐,在調(diào)用時,就可以調(diào)用多個參數(shù)

args可以是其他定義的參數(shù)名挺庞,但是*是必須要添加在前面的晰赞,比如也可以定義參數(shù)為 *numbers

number在函數(shù)內(nèi)部以數(shù)組或元祖的形式存在

關(guān)鍵字參數(shù):

可變參數(shù)允許你傳入0個或任意個參數(shù),這些可變參數(shù)在函數(shù)調(diào)用時自動組裝為一個tuple选侨。而關(guān)鍵字參數(shù)允許你傳入0個或任意個含參數(shù)名的參數(shù)掖鱼,這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個dict。

定義一個person函數(shù):

功能:以擴展函數(shù)的功能援制。

比如戏挡,在person函數(shù)里,我們保證能接收到name和age這兩個參數(shù)晨仑,但是褐墅,如果調(diào)用者愿意提供更多的參數(shù)拆檬,我們也能收到。試想你正在做一個用戶注冊的功能妥凳,除了用戶名和年齡是必填項外竟贯,其他都是可選項,利用關(guān)鍵字參數(shù)來定義這個函數(shù)就能滿足注冊的需求逝钥。

和可變參數(shù)類似屑那,也可以先組裝出一個dict,然后艘款,把該dict轉(zhuǎn)換為關(guān)鍵字參數(shù)傳進去持际。

命名關(guān)鍵字參數(shù):

如果要限制關(guān)鍵字參數(shù)的名字,就可以用命名關(guān)鍵字參數(shù)哗咆。

作用:就是只接收特定的關(guān)鍵字

使用方法:關(guān)鍵字參數(shù)**kw不同蜘欲,命名關(guān)鍵字參數(shù)需要一個特殊分隔符*,*后面的參數(shù)被視為命名關(guān)鍵字參數(shù)晌柬。假如函數(shù)中定義有可變參數(shù)姥份,命名關(guān)鍵字參數(shù)就不需要添加特殊分隔符*了。調(diào)用的時候必須在參數(shù)里添加關(guān)鍵字(key = value)

參數(shù)組合:(重點)

在Python中定義函數(shù)空繁,可以用必選參數(shù)装哆、默認參數(shù)乒省、可變參數(shù)罐韩、關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù)夷蚊,這5種參數(shù)都可以組合使用。

參數(shù)定義的順序必須是:必選參數(shù)>默認參數(shù)>可變參數(shù)>命名關(guān)鍵字參數(shù)>關(guān)鍵字參數(shù)傲诵。

小結(jié):

Python的函數(shù)具有非常靈活的參數(shù)形態(tài)凯砍,既可以實現(xiàn)簡單的調(diào)用,又可以傳入非常復(fù)雜的參數(shù)拴竹。

默認參數(shù)一定要用不可變對象悟衩,如果是可變對象,程序運行時會有邏輯錯誤栓拜!

要注意定義可變參數(shù)和關(guān)鍵字參數(shù)的語法:

*args是可變參數(shù)座泳,args接收的是一個tuple;

**kw是關(guān)鍵字參數(shù)幕与,kw接收的是一個dict挑势。

以及調(diào)用函數(shù)時如何傳入可變參數(shù)和關(guān)鍵字參數(shù)的語法:

可變參數(shù)既可以直接傳入:func(1, 2, 3),又可以先組裝list或tuple啦鸣,再通過*args傳入:func(*(1, 2, 3))潮饱;

關(guān)鍵字參數(shù)既可以直接傳入:func(a=1, b=2),又可以先組裝dict诫给,再通過**kw傳入:func(**{'a': 1, 'b': 2})香拉。

使用*args和**kw是Python的習(xí)慣寫法啦扬,當然也可以用其他參數(shù)名,但最好使用習(xí)慣用法凫碌。

命名的關(guān)鍵字參數(shù)是為了限制調(diào)用者可以傳入的參數(shù)名扑毡,同時可以提供默認值。

定義命名的關(guān)鍵字參數(shù)在沒有可變參數(shù)的情況下不要忘了寫分隔符*证鸥,否則定義的將是位置參數(shù)僚楞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末勤晚,一起剝皮案震驚了整個濱河市枉层,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赐写,老刑警劉巖鸟蜡,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異挺邀,居然都是意外死亡揉忘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門端铛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泣矛,“玉大人,你說我怎么就攤上這事禾蚕∧啵” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵换淆,是天一觀的道長哗总。 經(jīng)常有香客問我,道長倍试,這世上最難降的妖魔是什么讯屈? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮县习,結(jié)果婚禮上涮母,老公的妹妹穿的比我還像新娘。我一直安慰自己躁愿,他們只是感情好叛本,可當我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攘已,像睡著了一般炮赦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上样勃,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天吠勘,我揣著相機與錄音性芬,去河邊找鬼。 笑死剧防,一個胖子當著我的面吹牛植锉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播峭拘,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼俊庇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鸡挠?” 一聲冷哼從身側(cè)響起辉饱,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拣展,沒想到半個月后彭沼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡备埃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年姓惑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片按脚。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡于毙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辅搬,到底是詐尸還是另有隱情唯沮,我是刑警寧澤,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布伞辛,位于F島的核電站烂翰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蚤氏。R本人自食惡果不足惜甘耿,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望竿滨。 院中可真熱鬧佳恬,春花似錦、人聲如沸于游。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贰剥。三九已至倾剿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背前痘。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工凛捏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人芹缔。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓坯癣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親最欠。 傳聞我的和親對象是個殘疾皇子示罗,可洞房花燭夜當晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1.函數(shù)參數(shù) 1.1 位置參數(shù) 我們先寫一個計算x2的函數(shù): 對于power(x)函數(shù),參數(shù)x就是一個位置參數(shù)芝硬。當...
    時間之友閱讀 372評論 0 2
  • 定義函數(shù)的時候蚜点,我們把參數(shù)的名字和位置確定下來,函數(shù)的接口定義就完成了吵取。對于函數(shù)的調(diào)用者來說禽额,只需要知道如何傳遞正...
    JasonStack閱讀 335評論 0 0
  • Python Learning 2017-6-15 函數(shù)的參數(shù) 位置參數(shù) 調(diào)用函數(shù)時,參數(shù)有且只有一個皮官。 默認參數(shù)...
    Babelbuilder閱讀 763評論 0 0
  • 有時會一直沉浸在過去的回憶里,腦海就像放著你秘密的抽屜实辑,突然所有的東西就會呈現(xiàn)在你的眼前捺氢,這個時候就會閉著眼...
    凌霄潔閱讀 67評論 0 0
  • 上周去妹妹家小住幾日〖羟耍回家之后倍感郁悶摄乒。 眼前總是閃出那一幕場景,就像是電影極其驚險的一幕残黑。我和妹妹一起走進醫(yī)...
    過我的小日子閱讀 240評論 0 0