Python の連鎖代入
Python では、構文 x = y = somefunction() を使用した連鎖代入は y = somefunction( ); x = y。これは、関数によって返された値が最初に左端のターゲットに割り当てられ、次に同じ値が後続のターゲットに割り当てられることを意味します。
ただし、よくある誤解は、x = y = のような連鎖代入であるということです。 somefunction() は x = somefunction() と同等です。 y = 何らかの関数()。これは当てはまりません。
左から右の評価
連鎖代入を理解するための鍵は、Python は式とステートメントを左から右に評価することを覚えておくことです。これは、式 x = y = somefunction() で次のステップが発生することを意味します。
その結果、x と y は最終的に
意味
この左から右の評価は重要な意味を持つ可能性があります。たとえば、somefunction() がリストなどの可変オブジェクトを返す場合、ターゲットの 1 つに代入すると、同じオブジェクトを参照する他のすべてのターゲットに影響します。
例:
次のコードを考えてみましょう:
<code class="python">x = y = [] x.append(1) print(x, y)</code>
x と y は同じリスト オブジェクトを参照するため、上記のコードの出力は [1, 1] になります。いずれかのターゲットに加えられた変更は、他のターゲットにも反映されます。
結論
Python の連鎖代入は左から右に評価され、結果は同じになります。オブジェクトがすべてのターゲットに割り当てられます。 1 つのターゲットへの変更は同じオブジェクトへのすべての参照に影響を与える可能性があるため、これは可変オブジェクトを扱うときに重要な意味を持つ可能性があります。
以上が連鎖割り当ては Python でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。