開発者は、Python コードをモジュールにコンパイルするときに、次の理由により構文エラーが発生する可能性があります。ネストされた引数の試行された定義。同じコードが「モジュールの実行」オプションを使用して IDLE でシームレスに実行されますが、配布中に次のようなエラーが発生する可能性があります:
SyntaxError: invalid syntax File "/usr/local/lib/python3.2/dist-packages/simpletriple.py", line 9 def add(self, (sub, pred, obj)): ^
このエラーは削除が原因で発生します。
このエラーを修正するには、タプルを単一のパラメータとして渡し、手動で解凍するようにコードを変更する必要があります。影響を受けるコード def add(self, (sub, pred, obj)): は次のように修正する必要があります:
def add(self, sub_pred_obj): sub, pred, obj = sub_pred_obj
ラムダ関数の場合、一般に完全に解凍しないことが望ましいです。
lambda (x, y): (y, x)
を使用する代わりに、次のように記述することをお勧めします:
lambda xy: (xy[1], xy[0])
この問題の検出と修正を容易にするために、開発者はプログラムを利用できます。 「2to3」、「modernize」、または「futurize」などを使用して、Python 2.x コードを Python 3.x にリファクタリングし、ネストされた引数の処理に適したソリューションを効果的に特定して提案します。
以上がPython 3 でネストされた引数を定義すると構文エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。