又把自己逼到一个角落里……
def superfunction(*args, **kwargs, k):
^
SyntaxError: invalid syntax
我在这里打破了什么规则?似乎您不应该将“常规”变量与 * 变量混合,但我找不到任何人来确认或否认这一点。我在某处读到(当然我现在找不到)某些类型的参数必须首先出现,我相信关键字参数,这可能是也可能不是我的问题的一部分。
又把自己逼到一个角落里……
def superfunction(*args, **kwargs, k):
^
SyntaxError: invalid syntax
我在这里打破了什么规则?似乎您不应该将“常规”变量与 * 变量混合,但我找不到任何人来确认或否认这一点。我在某处读到(当然我现在找不到)某些类型的参数必须首先出现,我相信关键字参数,这可能是也可能不是我的问题的一部分。
尝试这个:
def superfunction(k, *args, **kwargs):
**kwargs
variable 关键字参数必须是函数声明的最后一部分。倒数第二个,*args
可变位置参数。(仅在 Python 3.x 中,您还可以在*args
和之间使用仅限关键字的参数**kwargs
。)首先,位置参数 - 这是声明函数参数的正确方法。查看这篇文章了解更多详细信息。
有关完整参考,请参阅Python 3.x或Python 2.x中的函数定义部分。
语法应该是这样的:
def superfunction(k, *args, **kwargs):
首先给出所有位置参数,然后是非关键字参数,然后是关键字参数。