可變長引數列表 args, kwargs

2021-08-09 14:50:09 字數 1392 閱讀 2852

或者可以叫做,在python中如何使用可變長引數列表

函式定義

這是一種特殊的語法,在函式定義中使用*args和kwargs傳遞可變長引數. *args用作傳遞非命名鍵值可變長引數列表(位置引數); kwargs用作傳遞鍵值可變長引數列表

下面的例子傳遞乙個位置引數以及兩個可變長引數

def test_var_args(farg, *args):

print 「formal arg:」, farg

for arg in args:

print 「another arg:」, arg

test_var_args(1, 「two」, 3)

結果:formal arg: 1

another arg: two

another arg: 3

這裡有乙個鍵值的例子,傳遞乙個位置引數和兩個鍵值引數

def test_var_kwargs(farg, **kwargs):

print 「formal arg:」, farg

for key in kwargs:

print 「another keyword arg: %s: %s」 % (key, kwargs[key])

test_var_kwargs(farg=1, myarg2=」two」, myarg3=3)

結果:formal arg: 1

another keyword arg: myarg2: two

another keyword arg: myarg3: 3

函式呼叫

這種語法不僅在函式定義中可以使用,在呼叫函式是也會出現

(相當於extract package的效果)

在呼叫函式時,使用args和*kwargs

def test_var_args_call(arg1, arg2, arg3):

print 「arg1:」, arg1

print 「arg2:」, arg2

print 「arg3:」, arg3

args = (「two」, 3)

test_var_args_call(1, *args)

結果:arg1: 1

arg2: two

arg3: 3

**kwargs

def test_var_args_call(arg1, arg2, arg3):

print 「arg1:」, arg1

print 「arg2:」, arg2

print 「arg3:」, arg3

kwargs =

test_var_args_call(1, **kwargs)

結果:arg1: 1

arg2: two

arg3: 3

python變長引數列表 可變長引數

可變長引數 預設情況下,必須使用正確數量的引數呼叫函式,這意味著,如果您的函式需要2個引數,則必須使用2個引數 不多也不少 來呼叫函式。示例,該函式需要2個引數,並獲得2個引數 def my function fname,lname print fname lname my function emi...

可變引數列表

模擬實現printf函式 va list是在c語言中解決變參問題的一組巨集,所在標頭檔案 include 用於獲取不確定個數的引數 va start,函式名稱,讀取可變引數的過程其實就是在堆疊中,使用指標,遍歷堆疊段中的引數列表,從低位址到高位址乙個乙個地把引數內容讀出來的過程 va arg,這個巨...

可變引數列表

小二,上 class a public class varargs two param static void twostringparam string a,string b three param 參照上兩種寫法,一直往後面加。是不是感覺很憂傷 幸好這不是真的。string.a static v...