ホームページ > バックエンド開発 > Python チュートリアル > Python 変数: ポインタか参照か?

Python 変数: ポインタか参照か?

Patricia Arquette
リリース: 2024-12-29 13:49:10
オリジナル
848 人が閲覧しました

Python Variables: Pointers or References?

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 サイトの他の関連記事を参照してください。

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