可變長引數

2022-04-11 03:03:26 字數 1297 閱讀 7139

可變長引數:指的是在呼叫函式時,傳入的引數個數可以不固定

呼叫函式時,傳值的方式無非兩種,一種是位置實參,另一種是關鍵字實參,因此形參也必須得有兩種解決方法,以此來分別接收溢位的位置實參(*)與關鍵字實參(**)

# 可變長引數*

# *args會接受多於的位置實參,盡量不使用其他的變數名,而應該使用args,args是約定俗稱

def func(name, pwd, *args):

print('name:', name, pwd, )

print(args)

return 1

res = func('randy', 123, 'a', 1, 3)

print(res)

結果:

('a', 1, 3)

1形參中的會將溢位的關鍵字實參全部接收,然後儲存字典的形式,然後把字典賦值給後的引數。需要注意的是:**後的引數名約定俗成為kwargs。

# 可變長引數 **

# kwargs會接收多餘的關鍵字實參,以字典形式儲存

def func(name, pwd, **kwargs):

print('name', name, 'pwd', pwd)

print(kwargs)

return 1

res = func('randu', 1234, a=2, b=4)

print(res)

結果:

1*會把元組打撒成位置實參傳給形參

def func(name, pwd, x, y, z):

print(name, pwd, x, y, z)

return 1

tup = (1, 2, 3)

print('randy', 12, *tup) # *會把元組打撒成位置實參傳給形參

結果:

randy 12 1 2 3

實參中的會將後引數的值迴圈取出,打散成關鍵字實參。以後但凡碰到實參中帶的,它就是關鍵字實參,應該馬上打散成關鍵字實參去看。

def func(name, pwd, **kwargs):

print(name, pwd)

print(kwargs)

return 1

dic =

res = func('2', 3, **dic) # 會把字典打散成關鍵字實參傳給形參

結果:

2 3

可變長引數

由於在c語言中沒有函式過載,解決不定數目函式引數問題變得比較麻煩,即使採用c 如果引數個數不能確定,也很難採用函式過載。對這種情況,提出了指標引數來解決問題。如printf 函式,其原型為 int printf const char format,它除了有乙個引數format固定以外,後面跟的引數的...

可變長引數

可變長引數 指的是在呼叫函式時,傳入的引數個數可以不固定 呼叫函式時,傳值的方式無非兩種,一種是位置實參,另一種是關鍵字實參,因此形參也必須得有兩種解決方法,以此來分別接收溢位的位置實參 與關鍵字實參 形參中的會將溢位的位置實參全部接收,然後儲存元組的形式,然後把元組賦值給後的引數。需要注意的是 後...

可變長引數

可變長引數 public class demo06 double.numbers 為可變長引數,如果有多個引數,那麼可變長引數只能放在最後,否則會出錯 在指定引數型別後加乙個省略號 則此引數為可變引數 乙個方法中只能指定乙個可變引數,它必須是方法的最後乙個引數,任何普通的引數必須在它之前宣告 pub...