Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Python・クラス】~オブジェクト指向~


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます!Shotaです。

今日も早速、Pythonに関する記事を書いていきます。

今日からPythonの「クラス」について丁寧に解説していきます。

 

【目次】

 

 

オブジェクト指向

構造化からオブジェクトへ

 構造化とは、関数によって各種の用途ごとにプログラムを切り離して組み立てていくことを意味します。プログラムを細かく分割して構造化することで、分かりやすくプログラムを整理することができます。例えば、「処理Aの変数・関数」…というように、関連するものをひとまとめにするのです。

このようにすれば、関数や変数が増えても、これによってそれらを整理できるようになるでしょう。この「プログラムのまとまり」はオブジェクトと呼ばれます。この考え方をさらに突き止めて整理した結果、誕生したのがオブジェクト指向です。

 

オブジェクト指向とは

オブジェクト指向とは、「オブジェクトを組み合わせてプログラムを作る」考え方です。オブジェクト指向では、プログラムの内容を考えて、それぞれの要素を整理していくことが重要になっていきます。

 

例えば、パソコンのアプリケーションを考えてみましょう。 

 「ウィンドウ」、「メニュー」、「アイテム」や「入力フィールド」、「プッシュボタン」というようなものの組み合わせでプログラムが作られていきます。これは、考えてみるとどんなアプリケーションであってもだいたい同じなのです。

ならな、「メニューのオブジェクト」や「入力フィールドのオブジェクト」というようにアプリケーションが必要とする昨日を実現したオブジェクトを予め用意しておけば、それらを組み合わせて簡単にアプリケーションを作れるようになれます。

このように、どんなプログラムからも使える再利用可能なオブジェクトがライブラリとして用意されていれば、簡単なアプリケーションを実装できます。

 

クラスとインスタンス

Pythonでは、オブジェクト指向を実現するために「クラス」という概念が存在します。クラスは、中に変数、値や関数をまとめて持つことができます。クラスはそのままな中にある変数や関数を呼び出して利用するわけではありません。クラスからインスタンスを呼び出して利用します。

インスタンスは、クラスを基にした実体です。Pythonでは、クラスは所謂設計図に該当します。中に用意する変数や関数などの定義をすべて持っていますが、classそのものを直接利用することは殆どありません。この設計図であるクラスをベースに、実際に利用できるインスタンスを利用し、これを操作するのがPythonのオブジェクトです。

 

どうしてインスタンスが必要でしょうか?そうすることで、同じオブジェクトを必要なだけ作成し操作できるようにするためです。

例えば、「入力フォームのクラス」というものを考えてみましょう。クラスを直接操作する方式だと、クラスの関数などを呼び出して入力フォームを表示して使えます。それでは、入力フォームが複数必要な場合はどうでしょうか?同じ入力フォームのクラスを複数用意するのはあまりいいやり方ではありません。

インスタンスを使えば、クラスからインスタンスを作ってそれを操作すれば入力フォームを作れます。クラスは一つだけで済み、必要ならいくらでもウィンドウを作って操作できます。

 

クラスのメンバ

クラスの中には、

  • 「値を保管するもの(変数)」
  • 「処理を行うもの(関数)」 

を用意できます。これらは、クラスのメンバと呼ばれます。クラスに用意できるメンバは整理すると以下の二つになります。

 

変数:クラスの中に用意される。インスタンスで使える。

メソッド:クラスの中に用意される関数。

 

 この二つが、クラスを構成する最も基本的なものです、これらを定義することが、クラスを作ることだと考えて下さい。

インスタンス変数もメソッドも、クラスの中に必要なだけ用意できます。

 

まとめ

【本日のまとめ】

  • 構造化により、プログラムを整理して分かりやすく組み立てられる
  • オブジェクト指向は、プログラムや機能を働きで整理し、それぞれをオブジェクトの組み合わせとして構築していく考え
  • クラスはオブジェクトの設計図。これを基に、実際に操作できるオブジェクトを作っていく
  •  クラスには、インスタンスで使える変数と、クラスの中に用意されているメソッドの2つの要素がある

 

 

本ブログでは、こんな感じでPythonにまつわる情報や基本的な知識、Pythonの操作方法やニュースをたくさん紹介していきます。毎週日曜日に、普段とは趣向を変えて有名な自己啓発本・ビジネス書を要約・考察するブログを書いていきます。

この記事がいいと思った人はSNSにシェアしてくれると非常に嬉しいです!

明日も昨日に引き続き「クラス」を解説していきます。

今日も最後まで読んでくださりありがとうございました!

 

【参考図書】

gihyo.jp