python函數中的不定長參數

python自定義函數中有兩中不定長參數,第一種是*name,第二種是**name。加了星號 * 的參數會以元組(tuple)的形式導入,存放所有未命名的變量參數。加了兩個星號 ** 的參數會以字典的形式導入。

第一種形式的不定長參數,在傳入額外的參數時可以不用指明參數名,直接傳入參數值即可,第二種因爲返回的是字典,所以傳入時需要指定參數名。

兩個簡單例子:

*name 形式:

>>> def test(a,b,*args):
...     print(a)
...     print(b)
...     print(args)
...
>>> test(1,2,3,4,5)
1
2
(3, 4, 5)
>>>

前1和2這兩個數據傳給了a和b,而剩下的3,4,5三個數都以元祖的形式存在了args這個參數中,所以在第四行輸出args時,輸出的是個元組,當然也可以像訪問元組那樣輸出args中的某一個值,print(args[0])

**name 形式:

>>> def test2(a,b,**args):
...     print(a)
...     print(b)
...     print(args)
...
>>> test2(1,2,m=3,n=4)
1
2
{'m': 3, 'n': 4}
>>>

可以看出,前1和2這兩個數據傳給了a和b,而 m 和  n 這兩個參數被以字典的形式存在的args中,輸出的是一個字典。

參考:https://www.cnblogs.com/liangxiyang/p/11208899.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章