@[toc]SyntaxError:non-default argument follows default argument
SyntaxError:non-default argument follows default argument
默认参数(没有默认值的参数)出现在了默认参数(有默认值的参数)之后
错误原因
SyntaxError: non-default argument follows default argument 是 Python 中的一个语法错误,表示在函数定义时,非默认参数
(没有默认值的参数)出现在了默认参数
(有默认值的参数)之后。
在 Python 中,函数参数的顺序
必须遵循以下规则:
先定义非默认参数(没有默认值的参数)。
再定义默认参数(有默认值的参数)。
如果违反了这一规则,就会触发此错误。
图示:
示例代码(错误)
def greet(name="User", message):
print(f"{message}, {name}!")
修正后的代码
def greet(message, name="User"):
print(f"{message}, {name}!")
调用示例
greet("Hello") # 输出: Hello, User!
greet("Hi", "Alice") # 输出: Hi, Alice!
参数顺序规则
非默认参数必须放在前面
默认参数必须放在后面
**如果有可变参数(如 *args 或 kwargs),它们必须放在最后。
总结
错误原因:非默认参数出现在了默认参数之后。
解决方法:确保非默认参数在前,默认参数在后。
正确顺序:非默认参数 -> 默认参数 -> args -> kwargs。