所以在java中你可以做这样的事情,如果你不知道要获得多少参数
private void testMethod(String... testStringArray){
}
我怎么能在python
中做这样的事情因为我不能做这样的事情吗?
def testMethod(...listA):
答案 0 :(得分:7)
你在谈论变长参数列表吗?如果是,请查看*args
,**kwargs
。
请参阅此Basic Guide和How 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
引用此问题What do *args and **kwargs mean?:
将* args和/或** kwargs作为函数中的最后一项 definition的参数列表允许该函数接受任意的 匿名和/或关键字参数的数量。
答案 1 :(得分:6)
听起来像你想要的那样:
def func(*args):
# args is a list of all arguments
这与the Python tutorial中涵盖的许多其他此类信息一样,您应该阅读。