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%

更新於:2023年4月4日

瀏覽量:368

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.