在python中當引數的不確定的時候可以用*args和**kwargs來表示可變引數,其中*args沒有key值**kwargs有key值。
args
[python]view plain
copy
print?
deffun_var_args(farg, *args):
"arg:"
, farg
forvalue
inargs:
"another arg:"
, value
fun_var_args(1
, "two", 3
) # *args可以當作可容納多個變數組成的list
result:
[python]view plain
copy
print?
arg:
1another arg: two
another arg: 3
**kwargs:
[python]view plain
copy
print?
deffun_var_kwargs(farg, **kwargs):
"arg:"
, farg
forkey
inkwargs:
"another keyword arg: %s: %s"
% (key, kwargs[key])
fun_var_kwargs(farg=1
, myarg2=
"two"
, myarg3=3)
# myarg2和myarg3被視為key, 感覺**kwargs可以當作容納多個key和value的dictionary
result:
[python]view plain
copy
print?
arg:
1another keyword arg: myarg2: two
another keyword arg: myarg3: 3
也可以用下面的形式:
[python]view plain
copy
print?
deffun_var_args_call(arg1, arg2, arg3):
"arg1:"
, arg1
"arg2:"
, arg2
"arg3:"
, arg3
args = ["two", 3
] #list
fun_var_args_call(1
, *args)
result:
[python]view plain
copy
print?
arg1:
1arg2: two
arg3: 3
[python]view plain
copy
print?
deffun_var_args_call(arg1, arg2, arg3):
"arg1:"
, arg1
"arg2:"
, arg2
"arg3:"
, arg3
kwargs =
# dictionary
fun_var_args_call(1
, **kwargs)
result:
[python]view plain
copy
print?
arg1:
1arg2:"two"
arg3:3
python中的可變引數和不可變引數
知識點 python中,萬物皆物件。python中不存在所謂的傳值呼叫,一切傳遞的都是物件的引用,也可以認為是傳址。python在heap中分配的物件分成兩類 可變物件和不可變物件。所謂可變物件是指,物件的內容可變,而不可變物件是指物件內容不可變。不可變 immutable int 字串 strin...
python中的可變引數
python和matlab類似,支援可變數量的引數。在控制台中舉例如下 a 1,2 k def fun a,b return a,b fun a fun k fun k 輸出結果為 1,2 b,a 1,2 可以看到 python中的任意函式都支援可變引數形式的輸入,但要保證輸入的陣列與函式要求的形參...
python中的可變引數
在python函式中,還可以定義可變引數。顧名思義,可變引數就是傳入的引數個數是可變的,可以是1個 2個到任意個,還可以是0個。我們以數學題為例子,給定一組數字a,b,c 請計算a2 b2 c2 要定義出這個函式,我們必須確定輸入的引數。由於引數個數不確定,我們首先想到可以把a,b,c 作為乙個li...