ホームページ >バックエンド開発 >Python チュートリアル >Python の複数代入は逐次代入とどう違うのでしょうか?
Python における複数の代入の謎
Python では、すぐには明らかではない方法で代入を評価できます。そのようなケースの 1 つは、2 つ以上の変数に同時に値が割り当てられる多重代入です。
次のことを考えてみましょう:
>>> x = 1 >>> y = 2
次に、両方の値を一度に割り当ててみましょう:
>>> x, y = y, x + y >>> x 2 >>> y 3
予想外に、これは値を割り当てる場合と比べて異なる結果を生成します。個別に:
>>> x = 1 >>> y = 2 >>> x = y >>> y = x + y >>> x 2 >>> y 4
説明
この動作を理解する鍵は、代入ステートメントの評価順序にあります。 Python では、代入の右側は変数を実際に設定する前に常に完全に評価されます。
最初のケース "x, y = y, x y" では、右側は次のように評価されます。
変数は次の値に設定されます: x にはハムが割り当てられ、y にはスパムが割り当てられます。
対照的に、2 番目のケースでは、「x = y; y = x y" の場合、割り当ては順番に行われます。x が y に設定され、次に y が x y に設定されます。これは y と同等です。 y.
したがって、最初のケースの複数代入は、値が同時に評価され設定されるため、動作が異なります。個別の割り当てを実行する場合は、後者の順次アプローチを使用する必要があります。
以上がPython の複数代入は逐次代入とどう違うのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。