在編寫函式時使用 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