Python で学ぶオブジェクト指向のclassの使い方


ある程度大きなプログラムを書こうと思ったとき、プログラミングにアプローチを決める必要があります。

アプローチとして有名なのは、命令型のC言語、関数型はScala、オブジェクト指向はRubyやJavaといわれています。Pythonでは関数型とオブジェクト指向をサポートしています。

Pythonでオブジェクト指向プログラミングするときに気をつけるべきポイントとオブジェクト指向について解説します。

 

▽関連記事はこちら

学習コンテンツ充実のPythonを学ぶなら今がチャンス

 

 

オブジェクト指向をPythonで行う理由とは

 

オブジェクト指向言語と言えば、JavaやRubyを思い浮かべる人も多いのではないでしょうか。

また、Pythonを習得するのであれば、流行の関数型でやるのが良いのでは?考える人も多いのではないかもしれません。

オブジェクト指向とは、クラス(class)と呼ばれるオブジェクトの設計図とそれに基づく実際のデータであるインスタンスによって形成されます。

クラスで作成したオブジェクトのインスタンスは外部から変更できないようにすることも可能です。

オブジェクト指向には次の4つの要素が存在しています。

・カプセル化
・抽象化
・ポリモーフィズム
・継承

PythonではJavaやRubyのように上記の4つの要素全てを提供しています。

 

カプセル化

 

カプセル化とは次のような特徴があり、オブジェクト指向プログラミングの最も特徴的な要素です。

・クラス(オブジェクト)ごとに、変数とメソッドをまとめられる
オブジェクトごとにクラスが存在し、個々のオブジェクトではなくおおもとのクラスについてのデータや処理をまとめて扱うというのがオブジェクト指向プログラミングの特徴のひとつです。

・データをクラス内に書き、外から見えないようにする。
クラスによって設計されてインスタンスによってオブジェクトの変数やメソッドを外部から操作できなくすることもカプセル化の重要な役割です。

Rubyなどではプライベート変数や、プライベートメソッドを作って外部からのアクセスをできないようにしていますが、Pythonは全てのデータが操作できる言語です。

そのため、クラスの外から変更されたくないデータに関しては、変数名とメソッド名の前に「_」(アンダースコア)をプログラマーが追加する事によってクラスの外部から触ってはいけない変数やメソッドを識別できるようにします。

 

抽象化

 

抽象化はクラスを作成する際に、必要な属性を選択する事ができることを言います。

たとえば、車というクラスを作るときには、「メーカー、車名、排気量、グレード、色、装備、タイヤのサイズ……」という多くの属性を持ちますが、クラスで定義する変数やメソッドは、必用な物に限れば良いという考え方です。

 

ポリモーフィズム

 

ポリモーフィズムは、多様性などと訳されることが多いようです。例として、print文が整数や文字列など多彩なデータを扱うことができるということを例にあげる場合も多いかと思います。

もう少し実際に即した形で説明すると、別のクラスにインスタンスとして同じ名前を持つ変数やメソッドがあった場合、ポリモーフィズムが無い場合には別の物として別々に扱わなければなりません。

しかし、ポリモーフィズムがあることによって、別のクラスのインスタンスであっても同じ物として扱うことができるということなのです。自動車クラスでもオートバイクラスでも自転車クラスでも「タイヤ」は「タイヤ」として扱うことができるということです。

 

継承

 

継承とは、クラス同士に親子関係を持たせることができるものです。子となるクラスは親のクラスの変数やメソッドを利用することができます。

また、子クラスは独自の変数やメソッドを作成することが可能ですが、子クラスで作成した変数やメソッドは親クラスに影響しません。

 

 

クラスを使ったオブジェクト指向プログラミングはJavaやRubyが有名ですが、Pythonでも十分に可能です。
Pythonでクラスの使い方を習得して更にプログラミングの幅を広げてみませんか?

 

▽関連記事はこちら

Python、クラスや関数へのコメントの書き方

 

 

株式会社キャパでは、アプリの企画・開発についてご相談を承っています。
「アプリを作りたいので、具体的な提案が欲しい。」
「頭の中にあるアイデアを本当に実現できるのか知りたい。」
「予算内に収まるのか?」
などのお客様のご相談に、親身に応じます。

アプリ開発:実績のご紹介


関連記事一覧

we love develop
アプリやシステムの開発を通じて、お客様のビジネスを成長させることが私たちのビジネスです。お気軽にお問い合わせください。
 お問い合せ

お電話でのお問い合わせはこちらから
TEL:03-5297-2871

メールマガジンの登録

キャパでは誰かに話したくなるようなIT小ネタを、週に一回メルマガで配信しています。
ぜひ購読してみませんか?
 購読する

ホワイトペーパーの入手

ITブログ月間20万PV達成!自社オウンドメディアの運用ノウハウを無料公開しています。
 ダウンロード

記事カテゴリ記事カテゴリ

月別投稿記事

PAGE TOP