【日常Bug】SyntaxError:non-default argument follows default argument

@[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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shanks66

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值