ホームページ >バックエンド開発 >Python チュートリアル >Python の複数の代入 (x, y = y, x y) が個別の代入 (x = y; y = x y) と異なるのはなぜですか?

Python の複数の代入 (x, y = y, x y) が個別の代入 (x = y; y = x y) と異なるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-15 17:52:10920ブラウズ

Why Does Multiple Assignment in Python (x, y = y, x y) Differ from Separate Assignments (x = y; y = x y)?

Python における複数の代入と評価順序

Python では、x, y = y, x y などの複数の代入を利用する場合、 ~の根本的な順序を理解することが不可欠である評価。

質問:

一度に複数の値を割り当てる場合、x、y = y、xy は別々に割り当てる場合と異なる値になるのはなぜですか、つまり x = y; y = x y?

答え:

Python では、変数の設定が行われる前に、代入ステートメントの右側が完全に評価されます。これは、x, y = y, x y で次のステップが実行されることを意味します:

  1. y は評価され、ハムとして保存されます。
  2. x y は評価され、スパムとして保存されます。
  3. x は ham に設定されます。
  4. y は に設定されます

実質的には、

ham = y
spam = x + y
x = ham
y = spam

と同等です。一方、x = y; では、 y = x y、手順は次のとおりです。

  1. y は x に設定されます。
  2. x y は y y として評価され、y に設定されます。

この結果x は y の元の値に設定され、y は x と元の値の合計に設定されます。 y.

以上がPython の複数の代入 (x, y = y, x y) が個別の代入 (x = y; y = x y) と異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。