我正在尝试编写一个以列表和int作为参数的函数。
functionName(*args, number)
#do stuff
数字需要是一个int,但我一直在IDLE中获取语法错误(这是我正在使用的IDE)
答案 0 :(得分:3)
如果您的第一个参数是列表,请删除*
:
def functionName(listob, number):
*args
语法用于捕获任意数量的位置参数,并且必须在所有其他位置(和关键字)参数后列出:
def functionName(number, *args):
因为它允许使用 数字或任意数量的额外参数来调用函数; functionName(42, 'foo', 'bar')
会产生number = 42
和args = ('foo', 'bar')
。但这与传入列表对象不同。
Python不会限制可以传入的对象类型; *args
会将您的函数作为元组提供额外的参数,但这只是因为这是表示额外传递给函数的0个或更多参数的最佳方式。
答案 1 :(得分:1)
在实际参数之前,您不能拥有*args
。所以你可以这样称呼它:
def foo(name, *args)
但是,您需要一个列表,因此不需要*args
。拥有以下签名就可以了:
def foo(name, lst)