python中的可變引數

2021-07-30 10:01:48 字數 2226 閱讀 3300

在python中當引數的不確定的時候可以用*args和**kwargs來表示可變引數,其中*args沒有key值**kwargs有key值。

args

[python]view plain

copy

print?

deffun_var_args(farg, *args):  

print

"arg:"

, farg  

forvalue 

inargs:  

print

"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):  

print

"arg:"

, farg  

forkey 

inkwargs:  

print

"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):  

print

"arg1:"

, arg1  

print

"arg2:"

, arg2  

print

"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):  

print

"arg1:"

, arg1  

print

"arg2:"

, arg2  

print

"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...