1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

Python超入門その18〜オブジェクト指向について理解しよう〜

Pocket

はじめに

Pythonでのプログラミングにはもう慣れてきましたか?

初心者からステップアップするために、ここでオブジェクト指向について学んでおきましょう。Pythonは、オブジェクト指向のプログラミング言語です。
オブジェクト指向について理解していなくてもプログラミングはできますが、それでは初心者から脱出できないでしょう。オブジェクト指向は中級者になるために必須の概念です。

この記事では、Python初心者の方向けに、オブジェクト指向について解説していきます。抽象的な概念でイメージしにくいですが、身近なものに例えて考えてみましょう。

オブジェクト指向ってなんだ?

オブジェクト指向は、プログラミングに対する考え方のひとつであり、パラダイムの一種です。
たとえば、C言語は命令型のパラダイムを持っており、Scalaでは関数型のパラダイムを持っています。

Pythonは、命令型や関数型などの複数のパラダイムを持つ言語ですが、オブジェクト指向が中心になっています。現在主流となっている他の言語でも、オブジェクト指向を採用しています。

オブジェクト指向の基本的な考え方は、オブジェクトという単位でプログラミングすることです。オブジェクトは、簡単にいえば関連する変数や関数をまとめたものです。
機能ごとに複数のオブジェクトを作り、相互作用させることでプログラミングを進めます。

なぜオブジェクト指向でプログラミングするのか?

オブジェクト指向でプログラミングする理由は、主に2つあります。

一つ目は、正しく設計されたオブジェクトは使いやすく、再利用性が高いからです。
オブジェクトには関連する機能がまとまっており、オブジェクトを操作する複数の関数が用意されています。また、汎用的に作られていれば、再利用することも容易です。

二つ目は、オブジェクトの内部に状態を持てることです。状態とは、つまるところ変数のことで、オブジェクトごとに固有の状態を持たせることができます。
オブジェクト指向では、外部からの状態へのアクセスを制限することで、勝手に内部状態が変更されないようにします。これを「カプセル化」といい、バグの低減に一役買ってくれます。

このように、オブジェクト指向にはプログラミングを円滑に進めるための利点があるのです。

オブジェクト指向で重要な要素

オブジェクト

オブジェクトは、オブジェクト指向で中心となる要素です。
その名の通り、オブジェクト(もの、物体)を表し、特定の概念や機能のまとまりをオブジェクトとして表現します。たとえば、数値や日付、ファイルなどです。
Pythonでは、次に説明するクラスとインスタンスを使って、オブジェクトを構成します。

クラス

クラスは、インスタンスのテンプレートとなる要素であり、ひとつのクラスから複数のインスタンスを生み出せます。これを「インスタンス化」といいます。
クラスは、メンバ変数やメソッド(関数)を持っており、それがそのままインスタンスに引き継がれます。

インスタンス

インスタンスは、クラスから生成する実体であり、クラスで定義されているメンバ変数やメソッドを持っています。クラスはそのままでは使えないので、インスタンスを作って実体化する必要があるのです。
それぞれのインスタンスは独立しているため、メンバ変数も個別に割り当てられます。

どのようなものをオブジェクトにするべきなのか?

オブジェクトの一例は、Pythonの標準ライブラリにみることができます。

Pythonには組み込みの関数も多いですが、それ以上に多数のクラスが定義されています。標準のデータ型もほとんどがクラスとして定義されているので、とても参考になるでしょう。

まとめ

オブジェクト指向について理解できましたか?

概念的な話だけでは、いまいちピンとこない方も多いのではないでしょうか。
オブジェクト指向は、実際にプログラミングしながらでないと、なかなか本質をつかむことはできません。

次回は、具体的なコードを使ってPythonでのオブジェクト指向プログラミングを学んでいきます。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る