Search

Pythonの「舞台裏」を知りたい! まずオブジェクトの仕組みを理解する - ITpro

全5645文字

Pythonはどのように動いているのか。処理系内部の仕組みを理解すれば、より高品質なプログラムを書けるようになる。Pythonの「舞台裏」を解説する。

 この特集では、リスト、整数、浮動小数点数、文字列といったオブジェクトを、Pythonインタプリタが内部でどのように扱うのかを解説します。内部の仕組みを理解すると、各種のオブジェクトを的確に使えるようになり、プログラムの高速化やバグの防止につながります。プログラミングの腕を磨いてもっとプログラミングを楽しむために、Pythonの“舞台裏”をのぞいてみましょう。

Pythonのオブジェクトの仕組み

 まずはオブジェクトの仕組みを学びましょう。Pythonインタプリタの内部で、リスト、整数、浮動小数点数、文字列といったオブジェクトが、どのように実現されているのかを学びます。各オブジェクトの特性を把握し、使い方のポイントを知ることが目的です。

CPythonのインタプリタ

 Pythonプログラムは、Pythonインタプリタを使って実行します。インタプリタとは、プログラミング言語で書かれたプログラムを、解析して実行するためのソフトウエアです。Windowsの「python」コマンドや、macOSやLinuxの「python3」コマンドが、Pythonインタプリタです。

 Pythonインタプリタの仕組みを詳しく知るには、Pythonインタプリタのソースコードを読み解くことが有効です。標準のPythonインタプリタ、つまり、皆さんが普段利用しているPythonインタプリタは「CPython」とも呼ばれ、そのソースコードはC言語で書かれています。次のPythonの公式サイトにある「Python Source Releases」のページから、CPythonのソースコードをダウンロードできます。

[画像のクリックで拡大表示]

 この特集の情報はPython 3.11.3のソースコードに基づきます。Pythonのバージョンが異なると、Pythonインタプリタの仕組みが変更される場合もありますが、可能な限り、今後も変更されないであろう情報を選んで解説していきます。

オブジェクトとは?

 オブジェクトとは、「オブジェクト指向プログラミング」というプログラミング手法における、プログラムの基本的な部品です。オブジェクトには、「データ」と、そのデータに対する処理である「メソッド」がまとめられています(図1)。オブジェクト指向プログラミングでは、色々な種類のオブジェクトを連携させることで、大規模なプログラムを構築します。

図1 ●「データ」と、そのデータに対する処理である「メソッド」をまとめたものが「オブジェクト」

図1 ●「データ」と、そのデータに対する処理である「メソッド」をまとめたものが「オブジェクト」

[画像のクリックで拡大表示]

 Pythonはオブジェクト指向プログラミング言語です。Pythonで扱う整数、浮動小数点数、文字列といった値や、リスト、タプル、集合、辞書といったデータ構造などは、すべてオブジェクトです。Pythonでは、これらの色々なオブジェクトを組み合わせて、プログラムを構築します。

 例えばリストは、複数の要素を格納できるデータ構造です。このリストというオブジェクトには、複数の要素と、それらの要素に対する処理を行うメソッドがまとめられています。

 実際にリストを使ってみましょう。Pythonインタプリタの「対話モード」を起動してください。Windowsの場合は、コマンドプロンプトかPowerShellを起動し、「python」コマンドを実行します。macOSやLinuxの場合は、ターミナルを起動し、「python3」コマンドを実行します。いずれの場合も、「>>>」というプロンプト(入力を促す文字列)が表示されます。

[画像のクリックで拡大表示]

 対話モードを終了するには、Windowsの場合は「Ctrl」+「Z」キーを押してから「Enter」キーを押します。macOSやLinuxの場合は「Ctrl」+「D」キーを押します。

 では、対話モードを使って、整数の1、2、3を要素に持つリストを作成し、変数aに代入してみましょう。「a = [1, 2, 3]」と入力し、Enterキーを押してください。

[画像のクリックで拡大表示]

 これでリストを作成できました。このリストは1、2、3という要素をデータとして管理しています。

 次はリストの内容を表示します。aと入力して、Enterキーを押してください。

[画像のクリックで拡大表示]

 リストの要素を確認できました。

 次はメソッドを使ってみましょう。メソッドを呼び出すには、次のように記述します。

[画像のクリックで拡大表示]

 「オブジェクト」の部分にはオブジェクトを格納した変数などを指定し、引数の部分にはメソッドに与える値を指定します。

 ここでは、リストに要素を追加する「appendメソッド」を使ってみます。オブジェクトにはa、引数には4を指定して、次のように入力してください。

[画像のクリックで拡大表示]

 リストの内容を表示してみてください。4が追加されているはずです。

[画像のクリックで拡大表示]

 このリストは、図2のようなオブジェクトです。4個の要素をデータとして管理するとともに、これらのデータを操作するためのappendメソッドなどを備えています。このように、データとそれに関連するメソッドをオブジェクトにまとめることで、プログラムをわかりやすく整理するのが、オブジェクト指向プログラミングの基本的な考え方です。

図2●リストオブジェクト。データである要素と、要素を処理するためのメソッドを持つ

図2●リストオブジェクト。データである要素と、要素を処理するためのメソッドを持つ

[画像のクリックで拡大表示]

Adblock test (Why?)



from "プログラム" - Google ニュース https://ift.tt/CQGv1o0
via IFTTT

Bagikan Berita Ini

Related Posts :

0 Response to "Pythonの「舞台裏」を知りたい! まずオブジェクトの仕組みを理解する - ITpro"

Post a Comment

Powered by Blogger.