函式在定義中,透過在引數前加星號,將傳遞進來的多個引數轉化為一個物件,元組或字典,可以說是將這些引數值收集起來。
引數前加一個星號,表明將所有的值放在同一個元組中,該引數的返回值是一個元組。
引數前加兩個星號,表明將所有的值放在同一個字典中,該引數的返回值是一個字典。
>>> def print_param(x, y, z = 3, *pospar, **keypar): print x,y,z print pospar print keypar >>> print_param(3,4,5,6,7,8,m = 1,n = 2) 3 4 5 (6, 7, 8) {'m': 1, 'n': 2}
分配引數
函式在呼叫中,透過在引數前加星號,傳遞的引數必須是元組或字典,能夠將其值轉化為相應變數的值,這個過程可以看做引數值的分配。
引數前加一個星號,表明將元組值分配給對應的函式引數值。
引數前加兩個星號,表明將字典中的值賦給鍵,函式的定義中要將鍵作為引數名。
>>> def add(x,y): print x,y return x + y >>> add(*param) 1 2 3 >>> def test(name,age): print name,age >>> m = {'name':'xiaoli','age':'12'} >>> test(**m) xiaoli 12 >>> m = {'name':'xiaoli','age':12} >>> test(**m) xiaoli 12