Python基礎 不定長引數

2022-05-07 13:06:10 字數 1065 閱讀 3898

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

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

下面是兩個簡單的栗子:

『 *name 』形式:

def funa(a, b, *args):

print(a)

print(b)

print(args)

funa(1, 2, 3, 5, 6, 7)

輸出如下:12

(3, 5, 6, 7)

可以看出,前1和2這兩個資料傳給了a和b,而剩下的5,6,7三個數都以元祖的形式存在了args這個引數中,所以在第四行輸出args時,輸出的是個元組,當然也可以像訪問元組那樣輸出args中的某乙個值,如下:

def funa(a, b, *args):

print(a)

print(b)

print(args[0])

輸出如下:12

3

這就只輸出了args這個元祖中的第乙個值。

『 **name 』形式:

def funb(a, b, **vardict):

print(a)

print(b)

print(vardict)

print(vardict['l'])

funb(1, 2, l=3, m=4)

輸出結果如下:12

3

可以看出,前1和2這兩個資料傳給了a和b,而 l 和 m 這兩個引數被以字典的形式存在的vardict中,所以第四行輸出的是乙個字典,第五行只輸出了vardict這個字典中的乙個值。

個人覺得第二種形式要比第一種形式更好用。想象一下這個場景,在填寫資料時,有些選項不是必填項,那麼怎麼判斷使用者有沒有填寫呢?這個時候這種形式的不定長引數就發揮作用了。

python基礎之不定長引數

例1 def test a,b,c 10,args 預設引數c,要放在a,b的後面 print a s a print b s b print c s c print args for each in args print each test 1,2,3,44,55,66,77,88 1傳給a,2傳...

Python不定長引數

記錄了python函式的不定長引數,用 來接收不定長的資料。在定義函式時,可以在形參前邊加上乙個 這樣這個形參將會獲取到所有的實參,它將會將所有的實參儲存到乙個元組中 a會接受所有的位置實參,並且會將這些實參統一儲存到乙個元組中 裝包 fn3函式的使用 形參可以接收其他的關鍵字引數,它會將這些引數統...

不定長引數 python

如果向乙個函式傳遞的引數的數量每次都不同,想要讓函式去做每次相加或者其他的事的時候,可以用 變數名 傳遞不定長引數,傳進去以後的變數會變成乙個元組def sum a result 0print type a for i in a result i return result result sum 1...