歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python中的任意參數的實例

收集參數

在函數定義中,在元組中收集不匹配的位置參數。

  >>>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 的下載地址:請點這裡 

Copyright © Linux教程網 All Rights Reserved