在定義時使用的(*args,**args)
和(*a,**b)
意思是一樣的
主要區別是*
號的多少
1
在定義函式時,在形參前面加乙個*,這樣這個形參可以獲取到所有的實參
2
它將會把所有的實參儲存到乙個元組中
3
可變引數不是必須寫在最後,帶*的引數後的所有引數必須以關鍵字引數的形式傳遞、
4
*形參只能接受位置引數,不能接受關鍵字引數
5
**形參可以接受其他關鍵字引數,他會將這些引數統一儲存到乙個字典中,(字典的(key-鍵)就是引數的名字,字典的(value——值)就是引數的值)
6
**形參只能有乙個,而且必須寫在所有引數的最後。
def
sum(a,b,c)
:print
(a+b+c)
sum(11,
12,13)
36
1.在定義函式時,在形參前面加乙個*,這樣這個形參可以獲取到所有的實參
2.它將會把所有的實參儲存到乙個元組中
def
fn(a,b,
*c):
pass
a,b,
*c =(1
,2,3
,4,5
,6)''' 把引數1賦值給a 把引數2賦值給b 把剩下的引數都賦值給c
'''# 這個*c 會接受所有的位置實參,並且會將這些實參統一儲存到乙個元祖中(裝包)
deffn1
(a,b,
*c):
# 不定長函式
print
('a ='
,a)print
('b ='
,b)print
('c ='
,c)print
("type(a)="
,type
(a))
print
("type(b)="
,type
(b))
print
("type(c)="
,type
(c))
fn1(1,
2,3,
4,5,
6,7,
8)
得到的為 :
a =
1b =
2c =(3
,4,5
,6,7
,8)type
(a)=
<
class
'int'
>
type
(b)=
<
class
'int'
>
type
(c)=
<
class
'tuple'
>
單個直接使用
def
fn2(
*c):
print
("c = "
,c,type
(c))
fn2(1,
2,3,
4,5)
得到的為 :
c =(1
,2,3
,4,5
)<
class
'tuple'
>
3.可變引數不是必須寫再最後,帶*的引數後的所有引數必須以關鍵字引數的形式傳遞
def
fn4(a,b,
*c,d)
:#這個d 為關鍵字引數的形式傳遞
pass
fn4(1,
2,3,
4,6,
7,d =
8)
得到的為
a=1b=
2c=(3
,4,6
,7)d=
8
4.*形參只能接受位置引數,不能接受關鍵字引數
這樣呼叫會出錯
deffn5
(*a)
:print
(a)
fn5(b=
1,c=
11)
5.**形參可以接受其他關鍵字引數
這些引數統一儲存到乙個字典中
字典的(key-鍵)是引數的名字
字典的(value-值)是引數的值
def
fn6(
**a)
:print
('a ='
,a)print
(type
(a))
fn6(b=
1,c=
2,d=
3)
得到的為 :
a =
<
class
'dict'
>
6.**形參只能有乙個,而且必須寫在所有引數的最後。
如:def fn1(a,*b,**c):
def
fn7(a,b,
**c)
:print
('a ='
,a)print
('b ='
,b)print
('c ='
,c)print
("type(a)="
,type
(a))
print
("type(b)="
,type
(b))
print
("type(c)="
,type
(c))
fn7(b=
1,c=
2,d=
3,e=
4,f=
5,a=
0)
得到的為 :
a =
0b =
1c =
type
(a)=
<
class
'int'
>
type
(b)=
<
class
'int'
>
type
(c)=
<
class
'dict'
>
案例:定義乙個函式,可以求任意個數字的和
def
fn3(
*d):
result =
0# 定義乙個變數,儲存結果
for n in d:
# 遍歷元組,並將元組中的數進行相加
result += n
print
(result)
fn3(1,
2,3,
4,5)
15
Python不定長引數
記錄了python函式的不定長引數,用 來接收不定長的資料。在定義函式時,可以在形參前邊加上乙個 這樣這個形參將會獲取到所有的實參,它將會將所有的實參儲存到乙個元組中 a會接受所有的位置實參,並且會將這些實參統一儲存到乙個元組中 裝包 fn3函式的使用 形參可以接收其他的關鍵字引數,它會將這些引數統...
不定長引數 python
如果向乙個函式傳遞的引數的數量每次都不同,想要讓函式去做每次相加或者其他的事的時候,可以用 變數名 傳遞不定長引數,傳進去以後的變數會變成乙個元組def sum a result 0print type a for i in a result i return result result sum 1...
python不定長引數詳解
如果想要乙個函式能不固定接收任意多個引數,可以使用不定長引數。python自定義函式中有兩種不定長引數,第一種是 在傳入額外的引數時可以不用指明引數名,直接傳入引數值即可。第二種是 這種型別返回的是字典,傳入時需要指定引數名。加了乙個星號 不定長引數會以元組 tuple 的形式匯入,存放所有未命名的...