** kwargsで** kwargs引数を別の関数に渡す
次の例は理解できません。これらの機能があるとしましょう。 # python likes def save(filename, data, **kwargs): fo = openX(filename, "w", **kwargs) # <- #1 fo.write(data) fo.close() # python doesnt like def save2(filename, data, **kwargs): fo = openX(filename, "w", kwargs) # <- #2 fo.write(data) fo.close() def openX(filename, mode, **kwargs): #doing something fancy and returning a file object なぜ#1が正しいソリューションで、#2が間違っているのですか?**kwargs基本的にはdictなので、openXに引数を渡したい場合、正しい方法は**dictを付けずに与えるだけだと思います。しかし、pythonは明らかに2番目の引数が気に入らず、引数を2つではなく3つ指定したことを教えてくれます。これの背後にある理由は何ですか?