Python函式中的*與**
阿新 • • 發佈:2018-10-31
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}
- 函式定義時使用*和**
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} 了。
轉載於此