ホームページ > バックエンド開発 > Python チュートリアル > Python 変数はポインタですか、それとも直接参照ですか?

Python 変数はポインタですか、それとも直接参照ですか?

Mary-Kate Olsen
リリース: 2024-12-05 13:16:10
オリジナル
928 人が閲覧しました

Are Python Variables Pointers or Direct References?

Python 変数はポインタですか?明確化

Python では、ポインターとしての変数の概念がしばしば混乱を引き起こします。変数がポインターと類似点を共有しているのは事実ですが、対処する必要がある根本的な違いがあります。

不変のデータ型と参照

指定した例では、次のようになります。

i = 5
j = i
j = 3
print(i)
ログイン後にコピー

Python は整数などの基本データ型を次のように扱うため、3 の予想される結果は正しくありません。不変オブジェクト。新しい値を変数に割り当てると、新しいオブジェクトが作成され、変数は新しいオブジェクトにバインドされます。この場合、j は値 3 の新しい整数に再割り当てされても、i は値 5 の元の整数にバインドされたままになります。

可変データ型と参照

一方、リストのような可変データ型を扱う場合、状況は変更点:

i = [1,2,3]
j = i
i[0] = 5
print(j)
ログイン後にコピー

この場合、i と j は両方とも同じリスト オブジェクトにバインドされます。 i[0] = 5 を使用してリストを変更すると、変更は i と j の両方に反映されます。この動作は、リストのような変更可能なデータ型が参照によって渡されるという事実によるものです。つまり、i と j の両方がメモリ内の同じ共有オブジェクトへの参照を保持します。

結論

Python 変数は単なるポインターではありません。不変データ型の場合、オブジェクト自体への直接アクセスが提供されます。可変データ型の場合、これらは、複数の変数が同じ基になるオブジェクトにアクセスして変更できるようにする参照として機能します。この違いにより、Python プログラミングのパフォーマンスと柔軟性の両方が保証されます。

以上がPython 変数はポインタですか、それとも直接参照ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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