Python - SyntaxError: non-default argument follows default argument



このエラーは、次のコードで発生します.
def func(a, b, c=3, d) :
  print (a,b,c,d)
上記のコードでは、dというnon-defaultパラメータの前に「c=3」というdefaultパラメータが存在するのはエラーです.

どうしてこんな間違いが起こったのですか。


正解はPython言語のinterpreterメソッド
上のコードでは、
func(1,2,5)を入力すると、Pythonはa=1,b=2を受け入れるが、c=5かd=5かが混同される.

そのため、これらのエラーを避けるために、

def func(a, b, d, c=3) :
  print (a,b,c,d)
このようにdefault値を定義するパラメータはnon-defaultパラメータの後ろにあればよい.