有時(shí)候,需要接受任意數(shù)量的實(shí)參,但預(yù)先不知道傳遞給函數(shù)的會(huì)是什么樣的信息。在這種情況下,可將函數(shù)編寫成能夠接受任意數(shù)量的鍵—值對(duì)——調(diào)用語句提供了多少就接受多少。
一個(gè)這樣的示例是創(chuàng)建用戶簡介:你知道你將收到有關(guān)用戶的信息,但不確定會(huì)是什么樣的信息盘榨。在下面的示例中,函數(shù)build_profile()接受名和姓,同時(shí)還接受任意數(shù)量的關(guān)鍵字實(shí)參掏呼。
python大大的圖
我的圖
形參**user_info中的兩個(gè)星號(hào)讓Python創(chuàng)建一個(gè)名為user_info的空字典,并將收到的所有名稱-值對(duì)都封裝到這個(gè)字典中笼裳。在這個(gè)函數(shù)中可以像訪問其他字典那樣訪問user_info中的名稱-值對(duì)唯卖。
在build_profile( )的函數(shù)體內(nèi),我們創(chuàng)建了一個(gè)名為profile的空字典躬柬,用于存儲(chǔ)用戶簡介拜轨。用for循環(huán)遍歷字典user_info中的鍵值對(duì),并將每個(gè)鍵值對(duì)都加入字典profile中允青。最后橄碾,將字典profile返回函數(shù)調(diào)用行。
如何傳遞任意關(guān)鍵字對(duì)應(yīng)的參數(shù)到函數(shù)
用字典颠锉。函數(shù)定義時(shí)定義一個(gè)字典類型參數(shù)法牲,形如**user_info。這個(gè)參數(shù)本身容量不設(shè)限木柬,可以接納任意數(shù)量的鍵值對(duì)皆串。
形參帶一個(gè)*和兩個(gè)*的區(qū)別
形參帶一個(gè)星號(hào),如*toppings中的星號(hào)讓Python創(chuàng)建一個(gè)名為toppings的空元組眉枕。
形參帶兩個(gè)星號(hào)恶复,如**user_info中的兩個(gè)星號(hào)讓Python創(chuàng)建一個(gè)名為user_info的空字典。