Python 2 3 可變長度引數

2021-10-25 12:05:22 字數 2033 閱讀 9433

可變長度指的是在呼叫函式時,傳入的值(實參)的個數不固定;

對於溢位的實參必須有對應的形參來接受

一、 可變長度的位置引數

def func(a, b, *args):  # args=(3, 4, 5, 6, 7, 8)

print(a, b, args, type(args))

func(1, 2, 3, 4, 5, 6, 7, 8)

結果:

1 2 (3, 4, 5, 6, 7, 8)
# 求和

def math_sum(*args):

count = 0

for i in args:

count += i

return count

count = math_sum(1, 2, 3, 4, 5, 6, 7, 8, 9)

print(count)

def func(a, b, c):

print(a, b, c)

func(*[1, 2, 3]) # 相當於func(1,2,3)

l = [11, 22, 33]

func(*l) # 相當於func(11,22,33)

結果:

1 2 3

11 22 33

def func(a, b, *args):

print(a, b, args)

func(1, 2, [3, 4, 5, 6])

func(11, 22, *[33, 44, 55, 66]) # 相當於func(11,22,33,44,55,66)

func(*'winnie') # 相當於func('w','i','n','n','i','e')

結果:

1 2 ([3, 4, 5, 6],)

11 22 (33, 44, 55, 66)

w i ('n', 'n', 'i', 'e')

二、 可變長度的關鍵字引數

def func(a, b, **kwargs):

print(a, b, kwargs)

func(11, b=22, c=33, d=44, e=55, f=66)

結果:

11 22
def func(a, b, c):

print(a, b, c)

func(*) # func('a','b','c')

func(**) # func(a=1,b=2,c=3)

結果:

a b c

11 22 33

# 錯誤

func(**) # func(a=1,b=2)

func(**) # func(a=11,x=22,c=33)

三、混用*與**:*args必須在**kwargs之前

示例1:

def func(a, *args, **kwargs):

print(args)

print(kwargs)

func(1, 2, 3, 4, 5, 6, 7, b=8, c=9, d=0)

結果:

(2, 3, 4, 5, 6, 7)

示例2:

def func_1(a, b, c):

print(a, b, c)

def func_2(*args, **kwargs): # args=(1,); kwargs=

func_1(*args, **kwargs)

func_2(11, c=33, b=22)

結果:

11 22 33

Python 可變長度引數

def test args first,args print 第乙個引數first是 format first for arg in args print args 的值為 format arg test args 1,2,3,4,5 test args a args 重點是 args可以被任意變數...

Python可變長引數

可變長的引數元組必須在位置和預設引數之後,帶元組 或者非關鍵字可變長引數 的函式普遍的語法如下 def function name formal args,nkwargs function documentation string function body suite星號操作符之後的形參將作為元組...

python可變長引數

程式設計函式時,偶爾會遇到引數數量不確定的時候,這時候就要使用可變引數.在python中,提供了兩種可變引數 在形參名前加乙個 表示接受任意多的引數 def func args print args func func 1 1,func 1,2 1,2 在形參名前加兩個 表示接受任意的關鍵引數 de...