一、不定長引數
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函式的使用 形參可以接收其他的關鍵字引數,它會將這些引數統...