ホームページ > バックエンド開発 > Python チュートリアル > Python の複数の代入は変数の評価順序にどのような影響を与えますか?

Python の複数の代入は変数の評価順序にどのような影響を与えますか?

Susan Sarandon
リリース: 2024-12-16 14:43:10
オリジナル
620 人が閲覧しました

How Does Python's Multiple Assignment Affect Variable Evaluation Order?

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

Python では、複数の変数に同時に値が代入される複数の代入が一般的です。ただし、このような割り当ての評価順序は、予期しない結果を招く可能性があります。

問題

次のコードを考えてみましょう。

>>> x = 1
>>> y = 2
>>> x, y = y, x + y  # Multiple assignment
ログイン後にコピー

この後代入では、x と y の値は次のとおりです:

>>> x
2
>>> y
3
ログイン後にコピー

これは、考えられるものとは異なります。代入が別々に行われた場合を想定します:

>>> x = 1
>>> y = 2
>>> x = y  # Assign x to the current value of y
>>> y = x + y  # Assign y to the sum of x and y
>>> x
2
>>> y
4
ログイン後にコピー

説明

この違いは、代入ステートメントの評価順序により発生します。 Python では、変数への実際の代入が行われる前に、代入の右側が最初に評価されます。

最初の例では、x、y = y、x y を代入すると、右側はhand 側は次のように評価されます:

ham = y  # Where ham = 2
spam = x + y  # Where spam = 1 + 2 = 3
ログイン後にコピー

そして、x にはハム (2) の値が割り当てられ、y にはスパム (3) の値が割り当てられます。これが、x = 2 および y = 3 という結果が得られる理由です。

対照的に、2 番目の例では、最初に x に y の値 (2) が割り当てられます。次に、y に次の合計が割り当てられます。 x (2) と y (2) の結果は 4.

以上がPython の複数の代入は変数の評価順序にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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