修正方法: syntaxerror: 位置引数がキーワード引数に続きます
Python で発生する可能性のあるエラーは次のとおりです。
SyntaxError : positional argument follows keyword argument
このエラーは、関数内でキーワード引数を使用した後に位置引数を使用すると発生します。
2 つの違いは次のとおりです。
立場論は、その前に「キーワード」がない議論です。
- 例: my_function(2, 2)
キーワード引数は、先頭に「キーワード」がある引数です。
- 例: my_function(a=2, b=2)
キーワード引数の後に位置引数を使用すると、Python はエラーをスローします。
- 例: my_function(a=2, 2)
次の例は、このエラーが実際にどのように発生するかを示しています。
例: キーワード引数の後に位置引数が続く
Python に、2 つの値を乗算して 3 番目の値で除算する次の関数があるとします。
def do_stuff (a,b):
return a*b/c
次の例は、この関数の有効な使用方法と無効な使用方法を示しています。
有効な方法 #1: すべての位置引数
次のコードは、すべての位置引数を指定して関数を使用する方法を示しています。
do_stuff ( 4,10,5 )
8.0
Python は各関数の引数に使用する値を正確に認識しているため、エラーは生成されません。
有効な方法 #2: すべてのキーワード引数
次のコードは、すべてのキーワード引数を指定して関数を使用する方法を示しています。
do_stuff(a= 4 , b= 10 , c= 5 )
8.0
繰り返しますが、Python は各関数の引数に使用する値を正確に認識しているため、エラーはスローされません。
有効な方法 #3: キーワード引数の前に位置引数を置く
次のコードは、キーワード引数の前に位置引数を使用して関数を使用する方法を示しています。
do_stuff( 4 ,b= 10 ,c= 5 )
8.0
Python は値4を引数に割り当てる必要があることを認識しているため、エラーは生成されません。
無効な方法: キーワード引数の後の位置引数
次のコードは、キーワード引数の後に位置引数を使用して関数を使用する方法を示しています。
do_stuff(a= 4 , 10 , 5 )
SyntaxError : positional argument follows keyword argument
キーワード引数の後に位置引数を使用したため、エラーがスローされます。
具体的には、Python は値10と5を引数bとc のどちらに割り当てるべきかわからないため、関数を実行できません。
追加リソース
次のチュートリアルでは、Python の他の一般的なエラーを修正する方法を説明します。
パンダの KeyError を修正する方法
修正方法: ValueError: float NaN を int に変換できません
修正方法: ValueError: オペランドをシェイプでブロードキャストできませんでした