程序源码
def add(a=1, b):
return a+b
if __name__ == '__main__':
print(add(1, 2))
问题描述
程序运行报错:
SyntaxError: non-default argument follows default argument
将其翻译一下:
语法错误:没有默认值的参数跟在有默认值参数的后面
进行错误分析:
函数add
共有两个参数a, b
,其中a
有默认值为1,b
没有默认值。根据报错提示可知,参数b
放到了参数a
之后才引发了报错,即带默认值的参数应该放到无默认值参数的后面。
函数定义时将无默认值的参数b
放到有默认值的参数a
的前面:
def add(b, a=1):
return a+b
if __name__ == '__main__':
print(add(2, 1))
方案2
或者也给参数b
一个默认值
def add(a=1, b=2):
return a+b
if __name__ == '__main__':
print(add(1, 2))