Python 中 * 和 ** 的用途

Najwa Riyaz 2023年1月30日
  1. Python 中*的定義
  2. Python 中**的定義
  3. *** 在 Python 函式呼叫中的使用
Python 中 * 和 ** 的用途

本文解釋了 Python 中 *** 的用途。

在 Python 中,我們使用單星號 (*) 和雙星號 (**) 來表示可變數量的引數。

我們可以通過以下任一方式在 Python 函式中傳遞任意數量的引數。

  1. 位置引數(*)
  2. 關鍵字引數(**

Python 中*的定義

在 Python 中使用符號 * 允許函式的位置引數/引數數量可變。

請按照以下示例進行操作。

def function_singleasterix(*someargs):
    for i in someargs:
        print(i)

現在,帶有 listtuple 的驅動程式程式碼如下。

listdata = ["Alex", "Tom", "John", "Alice"]
function_singleasterix(listdata)

輸出:

['Alex', 'Tom', 'John', 'Alice']

如果你不希望使用者知道引數的名稱,請使用僅位置引數。

例如,建議在 API 中使用僅位置變數——如果引數名稱被修改,這可以避免在 API 發生任何變化時損壞。

Python 中**的定義

在 Python 中使用符號 ** 允許對函式使用可變數量的關鍵字引數/引數。請注意,後面的引數必須是對映(字典鍵值對)項,而不是元組或列表。

按照下面的示例程式碼。

def function_doubleasterix(**keywordargs):

    print("The keys in the kwargs dicionary are -", keywordargs.keys())
    print("The values in the kwargs dicionary are -", keywordargs.values())

    print("--The key value assignment in the 'keywordargs' dictionary are as follows--")
    for key, value in keywordargs.items():
        print("%s == %s" % (key, value))

在上面的示例中,keywordargs 與下面的程式中的字典相關聯。

function_doubleasterix(SNo001="Alex", SNo002="Tom")

輸出:

The keys in the 'keywordargs' dicionary are - dict_keys(['SNo001', 'SNo002'])
The values in the 'keywordargs' dicionary are - dict_values(['Alex', 'Tom'])
--The key value assignment in the 'keywordargs' dictionary are as follows--
SNo001 == Alex
SNo002 == Tom

在上面的示例中,**keywordargs 提供關鍵字引數作為字典鍵值對。

*** 在 Python 函式呼叫中的使用

符號*** 也用於函式呼叫。使用它們將可變數量的引數傳遞給使用以下任一方法的函式。

  • 一個列表 - *
  • 一個元組 - *
  • 一本字典 - **

以下是你可以遵循的幾個示例。

使用變數 list 作為輸入呼叫函式。使用*如下

varlist = ["Tom", "John", "Alice"]
functiondef(*varlist)

使用變數 dictionary 作為輸入呼叫函式。使用**如下

vardict = {"a": "Tom", "b": "John", "c": "Alice"}
functiondef(**vardict)

使用變數 tuple 作為輸入呼叫函式。使用*如下

vartuple = ("Tom", "John", "Alice")
functiondef(*vartuple)

以上所有情況的輸出是:

SNo1 = Tom
SNo2 = John
SNo3 = Alice

相關文章 - Python Argument