Pythonでは、変数は実際のデータではなく、データが格納されているメモリのアドレスを指す参照値を保持しています。この記事では、Pythonの変数とアドレスについて詳しく説明します。
Pythonの変数とアドレス
Pythonの変数は、データが格納されているメモリのアドレスを指す参照値を保持しています。例えば、a = 10
というコードを実行すると、変数a
は直接10を保持しているわけではなく、10が格納されているメモリのアドレスを指しています。
変数の再代入とアドレス
変数に新しい値を代入すると、新しいオブジェクトがメモリ上に作成され、そのオブジェクトのアドレスが変数に代入されます。例えば、a = 3
からa = 5
に変更すると、新たに整数オブジェクト5が作成され、そのアドレスが変数a
に代入されます。
ミュータブルとイミュータブル
Pythonにはミュータブル(変更可能)とイミュータブル(変更不可能)の2種類のオブジェクトがあります。ミュータブルなオブジェクト(例:リスト)は、その要素を直接変更することができます。一方、イミュータブルなオブジェクト(例:整数、タプル)は、一度作成されるとその内容を変更することはできません。
まとめ
Pythonの変数は、データそのものではなく、データが格納されているメモリのアドレスを指す参照値を保持しています。変数に新しい値を代入すると、新しいオブジェクトが作成され、そのアドレスが変数に代入されます。Pythonにはミュータブルとイミュータブルの2種類のオブジェクトがあり、それぞれ異なる振る舞いを示します。.