有時候,需要接受任意數量的實參,但預先不知道傳遞給函數的會是什么樣的信息。在這種情況下,可將函數編寫成能夠接受任意數量的鍵—值對——調用語句提供了多少就接受多少。
一個這樣的示例是創建用戶簡介:你知道你將收到有關用戶的信息,但不確定會是什么樣的信息。在下面的示例中,函數build_profile()接受名和姓,同時還接受任意數量的關鍵字實參。
python大大的圖
我的圖
形參**user_info中的兩個星號讓Python創建一個名為user_info的空字典,并將收到的所有名稱-值對都封裝到這個字典中。在這個函數中可以像訪問其他字典那樣訪問user_info中的名稱-值對。
在build_profile( )的函數體內,我們創建了一個名為profile的空字典,用于存儲用戶簡介。用for循環遍歷字典user_info中的鍵值對,并將每個鍵值對都加入字典profile中。最后,將字典profile返回函數調用行。
如何傳遞任意關鍵字對應的參數到函數
用字典。函數定義時定義一個字典類型參數,形如**user_info。這個參數本身容量不設限,可以接納任意數量的鍵值對。
形參帶一個*和兩個*的區別
形參帶一個星號,如*toppings中的星號讓Python創建一個名為toppings的空元組。
形參帶兩個星號,如**user_info中的兩個星號讓Python創建一個名為user_info的空字典。