再次研究自己的角落......
def superfunction(*args, **kwargs, k):
^
SyntaxError: invalid syntax
我的规则是什么?似乎你不应该将'常规'变量与*变量混合,但我找不到任何人确认或否认这一点。我在某处阅读(我现在无法找到)当前必须先找到某些类型的参数,我相信关键字参数,这可能是也可能不是我的问题的一部分。
答案 0 :(得分:16)
试试这个:
def superfunction(k, *args, **kwargs):
**kwargs
变量关键字参数必须是函数声明中的最后一部分。倒数第二个*args
变量位置参数。 (仅在Python 3.x中,您还可以在*args
和**kwargs
之间使用仅限关键字的参数。)在第一个位置,位置参数 - 这是声明函数参数的正确方法。有关其他详细信息,请查看此post。
有关完整参考,请参阅Python 3.x或Python 2.x中的函数定义部分。
答案 1 :(得分:4)
语法应该是这样的:
def superfunction(k, *args, **kwargs):
首先,您提供所有位置参数,然后是非关键字参数,然后是关键字参数。