首先,我知道在定义函数时,您必须先放置位置参数,然后再放置默认参数,以避免解释器出现歧义。这就是为什么当我们尝试这样做时,它会引发错误。
例如,在下面的代码中,a 和 b 无法在运行时进行评估,因为它会引发错误
def func(a=1,b):
return a+b
func(2)
( Error:non-default argument follows default argument
)
这是可以理解的。
但是为什么以下会导致错误。它不是在定义函数时发生,而是在调用函数时发生。
def student(firstname, standard,lastname):
print(firstname, lastname, 'studies in', standard, 'Standard')
student(firstname ='John','Gates','Seventh')
Error:positional argument follows keyword argument
我们不能同时传递带关键字和不带关键字的参数吗?[编辑]:问题不是可能的重复项,因为重复项谈论的是定义默认参数的情况。我没有定义它们。我只是问为什么我们不能混合关键字值参数和直接值参数。