收集參數:
在函數定義中,在元組中收集不匹配的位置參數。
>>>def f(*args): print(args)
...
當這個函數調用時,python將所有位置的相關參數收集到一個新的元祖中,並將這個元組賦值給變量args。(可進行索引或在for循環中步進)
>>>f()
()
>>>f(1)
(1,)
>>>f(1, 2, 3, 4)
(1, 2, 3, 4)
**特性類似,但是它只對關鍵字參數有效。將這些關鍵字參數傳遞給新的字典。
>>>def f(**args): print((args)
...
>>>f()
{}
>>>f(a = 1, b = 2)
{'a': 1, 'b': 2}
另例:
>>>def f(a, *pargs, **kargs): print(a, pargs, kargs)
...
>>>f(1, 2, 3, x = 1, y = 2)
1 (2, 3) {'y': 2, 'x': 1}
解包參數
調用時使用*語法,解包參數集合。
>>>def func(a, b, c, d): print(a, b, c, d)
...
>>>args = (1, 2)
>>>args += (3, 4)
>>>func(*args)
1 2 3 4
同樣,**會以鍵值對的形式解包一個字典。
>>>args = {'a': 1, 'b': 2, 'c': 3}
>>>args['d'] = 4
>>>func(**args)
1 2 3 4
總結
*/**的語法:在頭部,它意味著收集任意數量的參數,而在調用是,它解包任意數量的參數。
--------------------------------------分割線 --------------------------------------
CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm
《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm
《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm
Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm
在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm
Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm
Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡