7

また隅っこで勉強した…

def superfunction(*args, **kwargs, k):
                                 ^
SyntaxError: invalid syntax

ここで私が破っているルールは何ですか?「通常の」変数と * 変数を混在させることは想定されていないようですが、これを確認または否定する人を見つけることができません。私はどこかで(そしてもちろん今は見つけられませんが)いくつかのタイプの引数を最初に来なければならないことを読みました.キーワード引数は私の問題の一部であるかもしれないし、そうでないかもしれません.

4

2 に答える 2

18

これを試して:

def superfunction(k, *args, **kwargs):

variable キーワード パラメータは**kwargs、関数宣言の最後の部分である必要があります。最後から 2 番目の*args可変位置パラメーター。*args(Python 3.x のみで、 と の間にキーワードのみのパラメーターを指定することもできます**kwargs。) まず、位置パラメーター - これが関数パラメーターを宣言する正しい方法です。詳細については、この投稿をご覧ください。

完全なリファレンスについては、 Python 3.xまたはPython 2.xの「関数定義」セクションを参照してください。

于 2013-08-26T21:27:08.193 に答える
4

構文は次のようになります。

def superfunction(k, *args, **kwargs):

最初にすべての位置引数を指定し、次に非キーワード引数、次にキーワード引数を指定します。

于 2013-08-26T21:27:14.550 に答える