原文链接: http://www.juzicode.com/python-error-syntaxerror-positional-argument-follows-keyword-argument/
错误提示:
调用函数提示SyntaxError: positional argument follows keyword argument
#juzicode.com / vx:桔子code
def func(name,height=160,weight=70):
print('name :',name)
print('height:',height)
print('weight:',weight)
func(height=175,'桔子菌')
==========运行结果:
File " < ipython-input-27-2b2875ad964b>", line 7
func(height=175,'桔子菌')
^
SyntaxError: positional argument follows keyword argument
错误原因:
1、第1个位置参数是name,调用函数时关键字参数height再位置参数name之前,所以出现语法错误。
解决方法:
1、实参传入必须和位置参数一一对应,先传位置参数再传关键字参数:
#juzicode.com / vx:桔子code
def func(name,height=160,weight=70):
print('name :',name)
print('height:',height)
print('weight:',weight)
func('桔子菌',height=175,)
==========运行结果:
name : 桔子菌
height: 175
weight: 70
2、位置参数name也采用关键字参数形式传递,原来的位置参数对位置就没有要求了:
#juzicode.com / vx:桔子code
def func(name,height=160,weight=70):
print('name :',name)
print('height:',height)
print('weight:',weight)
func(height=175,name='桔子菌',)
==========运行结果:
name : 桔子菌
height: 175
weight: 70
扩展内容:
如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。