【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の継承の基礎を学ぼう
更新日 : 2019年5月16日

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

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

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

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をはじめとしたオブジェクト指向の基礎となる為、とても重要です。

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

遠藤貴大

遠藤貴大

1991年生まれ。双子座。
理系大学で認証システムを学んだ後、アプリ開発者となる。
新しく学ぶ人に寄り添った記事を心がけて執筆します。
芸術が好き。いつか猫と暮らすのが夢。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説