2012-07-18 91 views
3

所以在Java中,你可以做這樣的事情,如果你不知道你有多少參數要得到經與DEF多個參數在Python

private void testMethod(String... testStringArray){ 

} 

我怎樣才能做這樣的事情在python

因爲我不能做這樣的事情嗎?

​​

回答

7

你在說變長參數列表嗎?如果是這樣,請看*args,**kwargs

見本Basic GuideHow to use *args and **kwargs in Python

兩個短的實例從[1]

使用*args

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 

和使用**kwargs(關鍵字參數):

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 

從這個報價SO質疑What do *args and **kwargs mean?

把*指定參數和/或** kwargs在上項目的函數 定義的參數列表允許該函數接受任意數量的匿名和/或關鍵字參數。

+0

幫助了很多謝謝 – FabianCook 2012-07-18 21:07:13

6

聽起來像是你想:

def func(*args): 
     # args is a list of all arguments 

這就像很多其他此類信息是覆蓋在the Python tutorial,你應該閱讀。

+0

剛剛編輯我的問題,問我是否可以使用它,因爲我看到它周圍 – FabianCook 2012-07-18 21:04:10