Python 3 でネストされた引数を定義すると構文エラーが発生するのはなぜですか?

Patricia Arquette
リリース: 2024-11-05 19:21:02
オリジナル
213 人が閲覧しました

Why Do I Get a Syntax Error When Defining Nested Arguments in Python 3?

Python 3: ネストされた引数の定義中の構文エラー

エラー コンテキスト

開発者は、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート