Python中的*使用

Python中的*使用

  在為函數傳遞參數和函數定義時使用參數的時候,時常會看到有和 *和**,下面分別講解其作用。

調用函數時使用*和 ** 假設有函數 def test(a, b, c)

test(*args):* 的作用其實就是把序列 args 中的每個元素,當作位置參數傳進去。比如上面這個程式碼,如果 args 等於 (1,2,3) ,那麼這個程式碼就等價於 test(1, 2, 3) 。

test(**kwargs):** 的作用則是把字典 kwargs 變成關鍵字參數傳遞。比如上面這個程式碼,如果 kwargs 等於 {『a』:1,』b』:2,』c』:3} ,那這個程式碼就等價於 test(a=1,b=2,c=3) 。

定義函數參數時使用*和**

def test(*args):   定義函數參數時 * 的含義又要有所不同,在這裡 *args 表示把傳進來的位置參數都裝在元組 args 裡面。比如說上面這個函數,調用 test(1, 2, 3) 的話, args 的值就是 (1, 2, 3) 。:

def test(**kwargs):   類似的, ** 就是針對關鍵字參數和字典的了。 調用 test(a=1,b=2,c=3) 的話, kwargs 的值就是 {『a』:1,』b』:2,』c』:3} 了。