Python 中的 *args 和 **kwargs
當我們在 Python 程式中定義函式時,其目的是透過向函式引數提供不同的值來反覆執行程式碼。這種設計中的一個挑戰是,如果我們不確定每次呼叫該函式時想要處理的引數數量會如何?這就是需要特殊引數 *args 和 **kwargs 的地方。讓我們逐一看看它們。
*args
*args 使我們能夠將可變數量的引數作為輸入傳遞給函式。在下面的示例中,我們計算一系列數字的乘積。每次呼叫函式時,這些數字的數量都可能不同。
示例
def findproduct(*many_nums): result = 1 for num in many_nums: result = result * num print("Multiplication result:",result) findproduct(3,9) findproduct(2,11,10)
輸出
執行上述程式碼將得到以下結果:
Multiplication result: 3 Multiplication result: 27 Multiplication result: 2 Multiplication result: 22 Multiplication result: 220
**kwargs
接下來,在某些情況下,我們想要傳遞關鍵字引數,它們基本上是鍵值對作為函式的引數。
在這裡,我們也可以向函式傳遞可變數量的此類關鍵字引數。此類引數命名為 **kwargs。請注意,使用此類引數時有兩個星號。實際上,此類關鍵字引數作為包含多個鍵值對的 Python 字典傳遞給程式。
示例
def country_details(**state_info): print('') for k,v in state_info.items(): print("{} is {}".format(k,v)) country_details(StateName="Telangana", Capital="Hyderabad",Population=3400000) country_details(StateName="Andhra Pradesh", Capital="Amaravati",Population=1000000,ForestCoverage="30%")
輸出
執行上述程式碼將得到以下結果:
StateName is Telangana Capital is Hyderabad Population is 3400000 StateName is Andhra Pradesh Capital is Amaravati Population is 1000000 ForestCoverage is 30%
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP