不定長引數,解包

2021-10-23 15:16:38 字數 2492 閱讀 1287

一、不定長引數

1、在定義函式時,可以在形參前邊加上乙個*,這樣這個形參將會獲取到所有的實參,它將所有的實參儲存到乙個元組中

注意:(1)帶星號的形參只能有乙個

# *a會接受所有的位置實參,並且將這些實參同意儲存到乙個元組中(裝包)

deffn

(*a)

print

('a='

,a,type

(a))

fn(1,2

,3,4

,5)

(2) 帶星號的引數,可以和其他引數配合使用

# 帶型號的引數,可以於其他引數配合使用

# 第乙個引數給a,第二個引數給b,剩下的都儲存到c的元組中

deffn

(a,b,

*c)print

('a='

,a)print

('b='

,b)print

('c='

,c)fn(1,

2,3,

4,5)

(3)可變引數不是必須寫在最後,但是注意,帶*的引數後的所有引數,必須以關鍵字引數的形式傳遞

# 可變引數不是必須寫在最後,但是注意,帶*的引數後的所有引數,必須以關鍵字引數的形式傳遞

# 第乙個引數給a,剩下的引數給b的元組,c必須使用關鍵字引數

deffn

(a,*b,c)

:print

('a='

,a)print

('b='

,b)print

('c='

,c)# fn(1,2,3,4,5) error

fn(1,2

,3,4

,c=5

)

(4)如果在形參的開頭直接寫乙個,則要求我們的所有的引數必須以關鍵字引數的形式傳遞*

# 如果在形參的開頭直接寫乙個*,則要求我們的所有的引數必須以關鍵字引數的形式傳遞

deffn(*

,a,b,c)

:print

('a='

,a)print

('b='

,b)print

('c='

,c)fn(a=

3,b=

4,c=5)

#

*(5) 形參只能接受位置引數,而不能接收關鍵字引數

#  *形參只能接受位置引數,而不能接收關鍵字引數

deffn

(*a)

:print

('a='

,a)# fn(b=1,d=2,c=3) error

# ** 形參可以接受其他的關鍵字引數,它會將這些引數統一儲存到乙個字典中

# 字典的key就是引數的名字,字典的value就是引數的值

# **形參只能有乙個,並且必須寫在所有引數的最後

deffn2

(**a)

:print

('a='

,a,type

(a))

fn2(b=

1,d=

2,c=

3)

2、定義乙個函式,可以求任意數字的和

def

sun(

*nums)

:# 定義乙個變數,來儲存結果

result =

0# 遍歷元組,並將元組中的數進行累加

for n in nums :

result += n

print

(result)

sum(

123,

333,

111,

567)

3、引數的解包(拆包):使用*

(1) * 對元組進行解包

def

fn(a,b,c)

:print

('a ='

,a)print

('b ='

,b)print

('c ='

,c)# 建立乙個元組

t =(10,

20,30)

# 傳遞實參時,也可以再序列型別的引數前新增星號,這樣就會自動將序列中的元素一次作為引數傳遞

# 這裡要求序列中元素的個數必須和形參中的個數相一致

fn4(

*t)

(2) ** 對字典進行解包

def

fn(a,b,c)

:print

('a ='

,a)print

('b ='

,b)print

('c ='

,c)# 建立乙個字典

d =# 通過 ** 來對乙個字典進行解包操作

fn(**d)

不定長引數

不定長引數 在定義函式時,不確定接收引數的個數,此時可以使用不定長引數 不定長引數的表現形式 1.args 表示在呼叫函式時,專門來負責接收不確定個數的位置引數的。2.kwargs 表示在呼叫函式時,專門來負責接收不確定個數的關鍵字引數的。當呼叫函式時,會把所有的關鍵字引數打包到乙個字典裡面,然後把...

不定長引數方法

package com public class unfixedparameter testone new string testtwo testtwo a b c public static void testone string args public static void testtwo s...

Python不定長引數

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