2017-11-21 4 views
1

の左側にあるものの、それ自体ではなく更新しています。彼らは別々の変数であると考えられています。カスタムクラス変数は、私は、次の式き

私は式でそれを使用しませんでしたが、なぜ変数は更新されていますか?

+0

nee_stateをnext_stateへの参照にするのではなく、next_stateの値でインスタンス化しますか? –

+0

[Ned BatchelderのPythonの名前と値](https://nedbatchelder.com/text/names.html)を参照してください。 –

+0

Pythonで「new_state = next_state」と矛盾する「別々の変数であると思われます。 –

答えて

0

new_state = next_stateを実行すると、new_statenext_stateの両方の変数が同じオブジェクトを参照します。 new_stateの以前の値は、それが除外されているため失われます。

next_stateオブジェクトのコピーを使用して新しい状態を初期化すると思っていますが、そうではありません。参考までに、同じ種類の動作がほとんどのオブジェクト指向言語やCスタイルの参照やポインタで発生します。

関連する問題