python函式星號引數詳解

pythontab發表於2013-03-22

函式在定義中,透過在引數前加星號,將傳遞進來的多個引數轉化為一個物件,元組或字典,可以說是將這些引數值收集起來。

引數前加一個星號,表明將所有的值放在同一個元組中,該引數的返回值是一個元組。

引數前加兩個星號,表明將所有的值放在同一個字典中,該引數的返回值是一個字典。

>>> 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



相關文章