7

又把自己逼到一个角落里……

def superfunction(*args, **kwargs, k):
                                 ^
SyntaxError: invalid syntax

我在这里打破了什么规则?似乎您不应该将“常规”变量与 * 变量混合,但我找不到任何人来确认或否认这一点。我在某处读到(当然我现在找不到)某些类型的参数必须首先出现,我相信关键字参数,这可能是也可能不是我的问题的一部分。

4

2 回答 2

18

尝试这个:

def superfunction(k, *args, **kwargs):

**kwargsvariable 关键字参数必须是函数声明的最后一部分。倒数第二个,*args可变位置参数。(仅在 Python 3.x 中,您还可以在*args和之间使用仅限关键字的参数**kwargs。)首先,位置参数 - 这是声明函数参数的正确方法。查看这篇文章了解更多详细信息。

有关完整参考,请参阅Python 3.xPython 2.x中的函数定义部分。

于 2013-08-26T21:27:08.193 回答
4

语法应该是这样的:

def superfunction(k, *args, **kwargs):

首先给出所有位置参数,然后是非关键字参数,然后是关键字参数。

于 2013-08-26T21:27:14.550 回答