オブジェクトと変数|【Python・R・エクセル統計学・統計解析】
目次 オブジェクトと変数【Python・R・エクセル統計解析】
オブジェクトと変数
オブジェクトとはプログラムで扱うデータのことです。
Pythonでは、プログラムのデータをすべてオブジェクトとして扱います。
プログラムを実行すると、必要なデータがメモリ上に読み込まれます。
端的に言うと、この読み込まれたデータがオブジェクトです。
プログラムのデータはすべてオブジェクトと理解しておけばよいでしょう。
インタラクティブシェルで「100+100」と入力してみます。その場で計算が行われ、結果が表示されます。
ソースコードの中に書いた「100」や「Python’」などのリテラルは、コンピュータのメモリに一時的に記憶されます。
このように、メモリ上に展開されたものをPythonでは「オブジェクト」と呼びます。
オブジェクトはPythonの根幹となる要素で、Pythonのプログラムはオブジェクトを中心として構成されます。
次に、オブジェクトにアクセスするための手段として変数があります。
プログラムを書いていると、同じ値をほかでも使いたいことがよくあります。
まずはインタラクティブシェルで「100+100」と入力してみます。その場で計算が行われ、結果が表示されます。
計算結果にさらに別の値を加えるとします。
ですが、結果を示す「100」という数字は表示されていますが、プログラムの中には残っていません。
計算して結果を出したとたんに、値は消えてしまいます。
正確に言うと、ソースコードの中に書いた「100」や「Python’」などのリテラルは、コンピュータのメモリに一時的に記憶されます。
このように、メモリ上に展開された「オブジェクト」は、処理が済んでしまえばもう使えません。
メモリに残っていたとしても、これにアクセスする手段がないからです。
そこで変数が必要になります。ここでは、「x」という名前の変数を使います。
変数は、オブジェクトに付けられる名札のようなものです。
Pythonでは、「変数名=値」と書くと、変数が使えるようになり、同時に=の右側の値にxという名前が付けられます。
「x=100+100」と書くと、=の右側の計算結果の200(int型のオブジェクト)にxという名前が付けられます。
以降は「x」と書けばいつでも200を取り出せます。
ここでは「オブジェクトに名前を付ける」という言い方をしていますが、プログラミングのときは、「代入する」という言い方が一般的です。
例では。変数xに「100+100」の結果を代入することで、xはメモリ上のオブジェクト「200」を示すようになるわけですが、これはxにオブジェクトのメモリアドレス(メモリ上の番地)が関連付けられることで実現されます。
Pythonのインタープリターは、「xはメモリの〇〇番地」であると解釈し、機械語のコードに変換します。
実際のメモリ番地は、プログラムの実行時によってまちまちですので、そのときに確保されたメモリ番地になります。
オブジェクトには関数(メソッド)が結び付けられています。
オブジェクトの中身はリテラルなので、文字列や数値などの情報が保持されています。
さらにオブジェクトは固有のメソッドを持ちます。
持つというと抽象的ですが、Pythonの仕様として、オブジェクトの中身によってそれぞれ特有のメソッドが内部的に結び付けられています。
変数xは「数値200というオブジェクト」を示すので、数値に関連したメソッドが結び付けられています。
このように、オブジェクトのメソッドを呼び出すときには「オブジェクト.メソッド」のようにピリオド「.」でつなぎます。
int型のオブジェクトには、bit_length()というメソッドがあり、保持する数値を表現するために必要なバイト数を調べて返すという働きをします。
オブジェクトを変数に代入し、変数経由でオブジェクトを操作することで、柔軟なプログラムを作ることができます。
これが変数の効果です。
メソッドは、オブジェクトを処理するためのソースコードをまとめたもので、機能ごとに特有の名前を持ちます。
関連記事