func(*args,**kwargs,x)抛出无效语法

jas*_*son 7 python

再次研究自己进入一个角落......

def superfunction(*args, **kwargs, k):
                                 ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

什么是我打破这里的规则?似乎你不应该将'常规'变量与*变量混合,但我找不到任何人确认或否认这一点.我读到了某个地方(我现在无法找到)当前必须先找到某些类型的参数,我相信关键字参数,这可能是也可能不是我的问题的一部分.

Ósc*_*pez 17

试试这个:

def superfunction(k, *args, **kwargs):
Run Code Online (Sandbox Code Playgroud)

**kwargs变量的关键字参数必须是在函数声明中的最后一部分.倒数第二个,*args变量位置参数.(仅在Python 3.x中,您还可以在*args和之间使用仅限关键字的参数**kwargs.)在第一个位置,位置参数 - 这是声明函数参数的正确方法.有关其他详细信息,请查看此帖子.

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

  • 因此其未命名的vars命名为vars,*,** (2认同)