定义函数参数 non-default argument应该在前
def myfun(var1="var1", var2):
pass
SyntaxError: non-default argument follows default argument
在Python中,函数定义的参数列表中,带有默认值的参数(默认参数)必须位于没有默认值的参数(非默认参数)之后。这是因为当函数被调用时,Python会按照参数在列表中的顺序将传入的值赋给相应的参数。如果默认参数在非默认参数之前,Python就无法确定如何将值赋给参数,从而导致SyntaxError: non-default argument follows default argument
。
所以,你的函数定义应该修改为:
def myfun(var2, var1="var1"):
pass
在这个例子中,非默认参数var2
在默认参数var1
之前,所以不会出现语法错误。希望这个解答对你有所帮助!