【python超入門!】クラスやメソッドについて解説します。

今回の記事では、pythonの基礎となるクラスとメソッドについて説明致します。

「pythonを始めたけど、クラスやメソッドがよくわからない」
「オブジェクト指向って何?」
「クラスやメソッドの実際の書き方が見てみたい」

という型へ向けて、

【基礎】クラスとは
【基礎】メソッドとは
【応用】コンストラクタについて
【応用】インスタンスについて
【応用】メソッドの種類
【応用】継承について
【おまけ】メソッド一覧を取得する方法

を説明致します。

この記事を読んでいただければ、pythonにおけるクラスやメソッドの基礎がわかります。

ぜひ最後までお付き合いください。

本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

なお、その他のPythonの記事についてはこちらにまとめています。

目次

クラスとは

クラスとは、オブジェクトを生成するうえで使われる“型”のようなものです。

このクラス(型)からインスタンスを生成し、処理を行います。

クラスの作り方は、”class”キーワードの後に任意のクラス名を書き、

その下にメソッドや変数を書いていくことで作られます。

実際に記述すると、以下のようになります。

class className():
    pass

上記は何の処理もしない空のクラスです。

もちろん何も処理が入っていないので、実行しても何も行われません。

この中にメソッド(関数)を入れることで、処理を行なっていきます。

メソッドとは

メソッドとは、ある処理のまとまりに名前をつけたものの事です。

メソッドは、クラスと同じ要領で”def”キーワードの後に任意のメソッド名を入れ、そこに引数を与えます。

引数とは処理をする上で必須となる、メソッドやクラスに引き渡す値の事です。

ここで、クラスの中で”Hello World!”を表示するメソッドを入れてみましょう。

class className():
    def myprint(self):
        print("Hello World!")

上記のコードは「myprint」というメソッドを作成しています。

こちらのmyprintメソッドを呼び出すと

Hello World!

と表示されます。

もちろん処理の「まとまり」なので、複数行記述することで様々な処理をさせることが可能です。

コンストラクタについて

クラスとメソッドについて説明したところで、コンストラクタについても確認しましょう。

コンストラクタとは、インスタンスを生成した際にまず自動的に呼び出すメソッドの事です。

クラスの初期設定などを行うためのメソッドになります。

また、コンストラクタの引数はインスタンス生成時に必要となる値になります。

インスタンスについては、次の章で説明致します。

インスタンスとは

インスタンスとは、型となるクラスを元に生成した実体を言います。

よく「クラスは設計図、インスタンスは設計図から作られた物」と例えられています。

実際の処理では、インスタンスを生成する事によってそのクラス内の処理を実行できるようになります。

それでは、実際のコードを確認してみましょう。

class Calc:
    def __init__(self, a, b):
        self.a = a
        self.b = b
    
    def Sum(self):
        self.sum = self.a + self.b
        return self.sum

ins = Calc(2, 3)
print(ins.Sum())

実行結果:

5

ここでのポイントは以下になります。
1. Calcクラス内にコンストラクタ(__init__)とSumメソッドを記述する
2. Sumメソッドでは、”return self.Sum”で戻り値設定する
3. ins = Calc(2, 3)でコンストラクタに引数を渡し、インスタンスを生成する
4. ins.Sum()でCalcクラス内のSumメソッドを呼び出す

ここで戻り値という言葉が出てきましたね。

戻り値とは、メソッドを呼び出した結果として返す値を言います。

処理結果としてどの値を返すかを”return 値”と書く事で設定できます。

pythonではこのようにしてクラスを元にインスタンスを生成し、メソッドを呼び出しています。

このように、型と実体に分かれて処理を行っていく言語を「オブジェクト指向型言語」と言います。

オブジェクト指向はつまるところ、C言語のように手続きの手順を書いていくものではなく、クラスから作られたオブジェクトの操作としてプログラムを記述していきます。

継承について

クラスやメソッドについて一通り説明したところで、継承について知っておきましょう。

実際にプログラムを書いていると「既存のクラスとほとんど一緒だけど少しだけ変更を加えたクラスを作りたい」なんて時があると思います。

そんな時に継承を活用すると便利です。

継承は指定した既存のクラスから、メソッドを追加・削除したり一部だけを上書き(オーバーライド)して、新たなクラスを定義する事を言います。

継承を活用する事で、よりコンパクトなプログラムが書けるようになります。

継承の具体的な活用方法は、以下の記事を参照してください。

【脱オブジェクト指向初心者!】Pythonの継承の基礎を学ぼう
更新日:2024年5月6日

メソッド一覧を取得する方法

最後に、クラスの中に沢山メソッドを書きすぎてしまって、少々ややこしくなってしまった場合は以下を実行してみると便利です。

メソッド一覧の取得が可能です。

instance = Calc(2,2)

for method in dir(instance):
    if callable(getattr(instance, str(method))):
        print(method)

Output:

Sum
__class__
__delattr__
__dir__
__eq__
__format__
__ge__
__getattribute__
__gt__
__hash__
__init__
__init_subclass__
__le__
__lt__
__ne__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__

まとめ

いかがでしたでしょうか?

今回の記事では、

【基礎】クラスとは
【基礎】メソッドとは
【応用】コンストラクタについて
【応用】インスタンスについて
【応用】継承について
【おまけ】メソッド一覧を取得する方法

について解説致しました。

クラスやメソッドはpythonをはじめとしたオブジェクト指向の基礎となる為、とても重要です。

ですので、この記事を読んで少しでもニュアンスを掴んでいただけたらと思います。

なお、

この記事ではPythonのクラスやメソッドについて紹介しましたが、これ以外にもPythonの基礎知識などが知りたい方は以下記事をどうぞ!

Pythonをはじめて学ぶ方のために、Pythonでできることや学習法を中心にご紹介していますので、きっと参考になるかと思います。

Python入門 完全攻略ガイド

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次