3

所以在java中你可以做这样的事情如果你不知道你会得到多少参数

private void testMethod(String... testStringArray){

}

我怎么能在python中做这样的事情

因为我不能做这样的事情吗?

def testMethod(...listA):
4

2 回答 2

7

您是在谈论可变长度参数列表吗?如果是这样,请查看*args, **kwargs

请参阅此基本指南以及如何在 Python 中使用 *args 和 **kwargs

[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 问题*args 和 **kwargs 是什么意思?

将 *args 和/或 **kwargs 作为函数定义参数列表中的最后一项允许该函数接受任意数量的匿名和/或关键字参数。

于 2012-07-18T21:03:44.850 回答
6

听起来像你想要的:

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

这与 Python 教程中包含的许多其他此类信息一样,您应该阅读该教程。

于 2012-07-18T21:03:35.803 回答