默认参数与必填参数的区别及Python函数参数错误问题咨询
默认参数与必填参数的区别及代码错误排查
一、默认参数与必填参数的区别
- 必填参数(required parameters):定义函数时没指定默认值的参数,调用函数时必须传入对应的值,不然会直接抛出参数缺失的错误。
- 默认参数(default parameters):定义函数时指定了默认值的参数,调用时如果不传这个参数,会自动用预先定义的默认值;如果传了值,就用传入的值覆盖默认值。
注意:Python里默认参数必须放在必填参数的后面,不然会触发语法错误。
二、代码错误排查与修正
你的代码存在三个问题:
- 函数定义行末尾缺少冒号
:,这是Python函数定义的强制语法要求; - 参数顺序搞反了:带默认值的可选参数
my_optional被放在了必填参数my_required前面,不符合Python参数定义规则; - 函数内部错误地重新赋值
my_optional = True,这会覆盖传入的参数值,导致无论你传什么,my_optional都固定为True,完全不符合需求。
正确代码
def defaults(my_required, my_optional=True): return my_optional is my_required
验证预期输出
>>> defaults(True):my_required为True,my_optional使用默认值True,返回True is True→ True>>> defaults(True, False):my_required为True,my_optional为False,返回False is True→ False>>> defaults(False, False):my_required为False,my_optional为False,返回False is False→ True
内容的提问来源于stack exchange,提问作者stumpamo
相关产品推荐
相关产品推荐

