可變長度指的是在呼叫函式時,傳入的值(實參)的個數不固定;
對於溢位的實參必須有對應的形參來接受
一、 可變長度的位置引數
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...