在編寫函式時使用 kwargs

你可以通過在引數名稱前使用雙星**來定義一個接受任意數量的關鍵字(命名)引數的函式:

def print_kwargs(**kwargs):
    print(kwargs)

在呼叫方法時,Python 將構造一個包含所有關鍵字引數的字典,並使其在函式體中可用:

print_kwargs(a="two", b=3)
# prints: "{a: "two", b=3}"

請注意,函式定義中的** kwargs 引數必須始終是最後一個引數,並且它只匹配在前一個引數之後傳遞的引數。

def example(a, **kw):
    print kw

example(a=2, b=3, c=4) # => {'b': 3, 'c': 4}

在函式體內部,kwargs 的操作方式與字典相同; 為了訪問 kwargs 中的各個元素,你只需像使用普通字典一樣遍歷它們:

def print_kwargs(**kwargs):
    for key in kwargs:
        print("key = {0}, value = {1}".format(key, kwargs[key])) 

現在,呼叫 print_kwargs(a="two", b=1) 顯示以下輸出:

print_kwargs(a = "two", b = 1)
key = a, value = "two"
key = b, value = 1