下面的Python代码中有什么问题?

下面的Python代码中有什么问题?,python,Python,下面的Python代码抛出一个错误 def f(a,*, **c): pass 该错误表示SyntaxError:named参数必须跟在bare*后面。我不明白在这种情况下这意味着什么。我在bare*之后指定了一个参数,但是我得到了一个错误。独立*参数是必需的,正如您所看到的,如果您在它后面指定了一个或多个仅命名关键字的参数,那么它是允许的。因为您没有仅命名关键字的参数,所以需要省略它 def f(a,*, **c): pass def f(a, **c): pass

下面的Python代码抛出一个错误

def f(a,*, **c):
    pass
该错误表示SyntaxError:named参数必须跟在bare*后面。我不明白在这种情况下这意味着什么。我在bare*之后指定了一个参数,但是我得到了一个错误。

独立*参数是必需的,正如您所看到的,如果您在它后面指定了一个或多个仅命名关键字的参数,那么它是允许的。因为您没有仅命名关键字的参数,所以需要省略它

def f(a,*, **c):
    pass
def f(a, **c):
    pass
如果希望a是仅位置参数,则需要使用独立/参数:

def f(a, /, **c):
    pass

解释意味着您必须在*之后立即指定某些内容,而不是在*之后添加另一个参数*不是参数。用*传递某物写def fa、*、c之类的东西是有效的。所以,我想,在*之后必须紧接着做的事情是不对的。请重复一遍,然后从后面开始。如果没有其他问题,我们希望您在发布之前查找错误消息。我确信我已经在某个地方看到了这个问题,最终找到了它:我认为需要注意的是,f2,3会引发错误,因为我猜OP期望:f接受1个位置参数,但给出了2个位置参数