するのは合法ですか
a = b = 3
パイソンで?もしそうなら、それは悪い習慣ですか?
はい、そうすることは合法です。いいえ、悪い習慣ではありません。
右側の値式が最初に評価され、次に左から右に代入が行われることを考慮してください。3
が最初に割り当てられa
、次に に割り当てられb
ます。
割り当てステートメントは式リストを評価し (これは単一の式またはコンマ区切りのリストであり、後者はタプルを生成することに注意してください)、単一の結果オブジェクトを各ターゲット リストに左から右に割り当てます。
すべてのターゲットに同じ値を割り当てます。つまり、各変数は1 つの値のみを参照します。これは、リストや辞書のように値が変更可能な場合に重要です。
はい、次のようなことに注意してください。
a = b = []
a.append(2)
print a
print b
版画:
[2]
[2]
しかし、それ以外は問題ありません。@Martijnの回答には多くの情報が含まれているので、チェックしてみてください :)。