【Python】クラス(Class)の使い方を解説!サンプルコード付き!

クラス(class)と聞くと学校の「クラス」を思う人がいるのではないでしょうか?
その場合、クラスは「仕分けをする」というイメージになるかと思います。

しかし、プログラミングでのクラスはそのイメージとは少し異なります。
プログラミングでのクラスはたくさんのデータのまとまりを意味します。
classを使用することで、関数を定義するときみたいに複数の処理や値をまとめておくことが可能です。

今回はクラスの使い方についてサンプルコードを使って解説してきます。
よく使われるものなのでしっかり学習しましょう。

クラス(class)とは

先ほども言いましたが、クラス(class)とはたくさんのデータのまとまりです。
classを使用すると、関数を定義するときのように複数の処理や値をまとめておくことができます。

そして、classには「インスタンス」というものが作成でき、インスタンスにはデータを保持させておくことができたり、関数のように処理をまとめておくことができたりします。
また、インスタンス化することでクラスの中のデータを取り出して使用することもできます。

classはどんなときに使われるのか

classは「オプジェクト」を作成し、対象物に関する情報や動きをまとめて使い回すことができます。
例えば、学校のクラスの生徒の情報を出力したいと思ったとします。
約30人の生徒の情報を記載して出力するのはとても面倒です。

そこで、studentというクラスを作成し、その中に名前、年齢、住所を出力できる型となるものを作成しておきます。そうすると、後はstudenクラスをインスタンス化し、必要なデータのみを入力すれば30人の生徒の情報を出力することができます。

このように、それぞれの共通部分をクラス化することでコードを書く手間が省けます。
また、コードも少なくて済み、コーディングがスマートになります。
そのため、何かしらの対象物を作成する必要があるならばクラスが使用できます。

クラスの書き方

classの後に名前をつけることでクその名前のクラスを作成することができます。
そして、変数にクラスを格納することでクラスの中にあるデータを使用することができます。
これをインスタンス化するといいます。

クラスを使ったサンプルコード

ここでクラスを使ったサンプルコードを見てみます。

出力結果

name 田中 old 25
name 鈴木 old 26

まず、「Human」というクラスを作成し、その中には nameとoldがあります。
この2つは人間の情報を出力する時に共通な項目となりますのでクラスの中に格納しています。
そして、インスタンス化することでその2つの情報を取り出しています。

クラス(class)の基本的な使い方

ここで、クラスの基本的な使い方を見ていきます。

クラスを作成する

まずはクラスを作成します。

出力結果

クラスが作成されました。

このようにすることで、Dogというクラスが作成されます。

インスタンス化する

次に、先ほど作成したクラスをインスタンス化します。

出力結果

Dogがインスタンス化されました。
Dogがインスタンス化されました。

このように書くと先ほど作成したクラスをインスタンス化できます。

コンストラクタ

コンストラクタとは、クラスをどのよう生成するか、クラスにどのようなデータを持たせるかなどといった情報を定義するのに必要なものです。

出力結果

コンストラクタが作られました。
コンストラクタが作られました。

コードで言うと「__init__」という名前の部分になり、インスタンス化によってコンストラクタの中身が取り出されています。

引数にselfというものがありますので注意しましょう。
selfとはクラス自身を指し、この引数は必須になります。

デストラクタ

デストラクタはクラスのインスタンスを削除するときに使うメソッドになります。「del」という名前でデストラクタを定義します。

出力結果

インスタンスが生成されました。
デストラクタの呼び出します。
インスタンスが破棄されました。
デストラクタの呼び出します。

メソッドを呼び出す

メソッドとは処理の塊を言います。このクラスではこのような処理を行いたいという場合に使用します。
Pythonでメソッドを定義する場合は、”def”の後にメソッド名を指定します。

例1

出力結果

犬はワンワンと吠える
犬はワンワンと吠える

インスタンス化することでbarkというメソッドが呼び出されました。
引数を使ってメソッドを呼び出すことも可能です。

例2

出力結果

トイプードル は キャンキャン と吠える
ブルドック は ワンワン と吠える

引数を設定することでbarkメソッドが呼び出されました。
また、メソッドに返り値を設定することも可能です。

例3

出力結果

トイプードル は キャンキャン と吠える
トイプードル は ヴァンヴァン と吠える
ブルドック は ワンワン と吠える
トイプードル は ヴァンヴァン と吠える

メソッドに返り値を設定することでそのメソッドで取得した値を持ってくることができました。

クラスを継承

クラスを継承することで。、クラスに新しいメソッドを追加したり、親となったクラスのメソッドを使用したりすることができます。継承するには継承させたいクラスの後ろに()をつけて継承させたいクラス名を書きます。

例3

出力結果

トイプードル は キャンキャン と吠える
動物です。
ブルドック は ワンワン と吠える
動物です。

クラスを継承することで、AnimalクラスにあるメソッドをDogクラスで使用することができました。

オーバーライド

オーバーライドすることで、親となったクラスのメソッドを子クラスで更新することができます。
オーバーライドするには親クラスのメソッドを子クラスに書いて、更新したい処理を書きます。

例3

出力結果

動物です。
トイプードル は キャンキャン と吠える
Animalクラスのメソッドを更新
ブルドック は ワンワン と吠える
Animalクラスのメソッドを更新

オーバーライドすることで、AnimalクラスにあるメソッドをDogクラスで更新することができました。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し