Python 收集參數(可變參數) *para和 **para的使用

收集參數也叫作可變參數,因爲有時候我們也不知道輸入的參數有多少個,所以需要將所有輸入參數打包進一個輸入參數中,這就是收集參數,其有兩種格式,一種是用元組收集*para,一種是用字典收集**para,下面來看使用方法。

def test(*para):
	print('輸入參數個數:',len(para))
	print(para)
test(1,2,3,4,5,6)

在這裏插入圖片描述
注意區別:

def test(*para):
 print('輸入參數個數:',len(para))
 print(*para)
test(1,2,3,4,5,6)

在這裏插入圖片描述
如果說用單個形參代表多個參數,那麼注意此時輸入參數還是一個,如下:

def test(*para):
 print('輸入參數個數:',len(para))
 print(para)

a = (1,2,3,4,5,6) # 輸入參數爲元組
test(a)

在這裏插入圖片描述

def test(*para):
 print('輸入參數個數:',len(para))
 print(*para) # 差別在這,一個有引號一個沒有
a = (1,2,3,4,5,6) # 這裏的輸入參數爲元組
test(a)

在這裏插入圖片描述
此時print的輸入參數有沒有星號*都是一樣的輸入元組,但是如果說輸入參數用列表存儲就不一樣了,看下面的兩個例子:

def test(*para):
 print('輸入參數個數:',len(para))
 print(para)

a = [1,2,3,4,5,6]
test(a)

在這裏插入圖片描述

def test(*para):
 print('輸入參數個數:',len(para))
 print(*para)

a = [1,2,3,4,5,6]
test(a)

在這裏插入圖片描述
看出差別沒有,上面是元組,但是下面就是列表了。


如果說除了收集參數之外還有其他必需的參數,最好指定默認參數,並且在調用函數的時候需要指明參數名,例如:

def test(*para,two = 0):
 print('輸入參數個數:',len(para))
 print(para)
 print(two)

a = {1:'one',2:'tow'}
test(a,2)

在這裏插入圖片描述
這說明所有的輸入參數都被理解成了收集參數,如果需要給其他參數賦值,要改爲:

def test(*para,two = 0):
 print('輸入參數個數:',len(para))
 print(para)
 print(two)

a = {1:'one',2:'tow'}
test(a,two = 2)

在這裏插入圖片描述


再看兩個星號的輸入參數**para

def test(**para):
 print('輸入參數個數:',len(para))
 print(para)

test(a = 1,b = 2)

在這裏插入圖片描述
此時返回的就是字典了。

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