Python 変数の再考: ポインターか参照?
Python プログラミングの世界では、変数はよく「ポインター」として説明されます。ただし、これにより、これらの変数の動作について疑問が生じます。次のコード スニペットを考えてみましょう。
i = 5 j = i j = 3 print(i)
「ポインター」の仮定に基づいて、コードの実行後に i の値が 3 になることが予想されます。ただし、実際の結果は 5.
何が起こっているのですか?
Python リファレンスを理解する
Python では、変数はポインタのように機能しません。代わりに、それらは参照として機能します。参照は変数をオブジェクトに接続します。変数を別の変数に割り当てると、同じオブジェクトへの参照が作成されます。
これは、最初のコード スニペットでは、i と j が同じ整数オブジェクト (int(5)) への参照であることを意味します。 。 j の値が 3 に変更されると、新しい整数オブジェクト (int(3)) が作成され、j はそのオブジェクトへの参照になります。ただし、i は元の整数オブジェクト int(5) への参照のままです。
2 番目のコード スニペットは、リストを使用してこの動作を示しています。
i = [1,2,3] j = i i[0] = 5 print(j)
この場合、i と j は次のとおりです。どちらも同じリスト オブジェクトへの参照です。 i[0] が変更されると、リスト オブジェクト自体が変更されるため、i と j は引き続き同じリストを参照します。
結論
Python 変数はポインターではありません、むしろ参考になります。これらはオブジェクトへの接続を確立し、変数の値が変更されると、オブジェクト自体に影響を与えます。これは、コード スニペットに見られる予期せぬ結果を説明しており、Python の変数の動作を理解する際の基本概念として機能します。
以上がPython 変数: ポインタか参照か?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。