【Python無料学習】クラスの使い方

※この記事は「2020年7月22日」に更新しました。

無料で学習できる Python(パイソン)講座。

今回は、クラスの使い方について。

前回は、正規表現について解説しました。

正規表現

【Python無料学習】正規表現

2020年7月21日

クラスは、Python に限ったことではなく、オブジェクト指向のプログラミング言語を理解するために重要な概念です。

他でも応用できるので、しっかり解説していきます。

クラスの使い方

それでは、クラスの使い方について解説していきます。

クラスとは

オブジェクト指向は、ソフトウェアを構成する一つの部品を様々なアプリケーションで共通して利用できるようにする考え方です。

クラス(class)というのは、オブジェクトの構造を定義するものです。

言葉で説明するとわかりにくいので、実際に作成してみます。

test1.py という以下のファイルを作成します。

# 車クラスを作成
class Car:
    # コンストラクタ
    def __init__(self, name, color):
        self.name = name
        self.color = color

    # 自己紹介メソッド
    def self_intro(self):
        print("Welcome. My name is {0}".format(self.name))
        print("The body color is {0}".format(self.color))

    # 走行メソッド
    def run(self):
        print("Zoom!")

# インスタンス作成
car_rx7 = Car("rx-7", "yellow")
car_ae86 = Car("ae86", "white")

# rx-7 のアピール
car_rx7.self_intro()
car_rx7.run()

# 改行
print("\n")

# ae86 のアピール
car_ae86.self_intro()
car_ae86.run()

実行結果は以下の通りです。

クラスの使い方

今回の例である、走行メソッドに関しては、中身がほとんどないので、インスタンスメソッドにする必要がないかもしれませんが、車種によって走行性能が違うと思ってください。



プロパティとメソッド

クラスの中には、プロパティとメソッドというものがあります。

プロパティは、オブジェクト固有のデータのことです。

test1.py を例に言うと、車の名前や色がプロパティになります。

メソッドは、関数のようなものです。

オブジェクト自身の操作のことです。

インスタンスとは

インスタンスというのは、オブジェクトの実体のようなものです。

クラスが設計書でインスタンスが設計書をもとにつくられた実体と言われていたりします。

先程紹介した test1.py では、車の名前と色を引数として渡して、インスタンスを生成しています。

コンストラクタとは

コンストラクタというのは、初期化のときに実行される特殊なメソッドです。

インスタンスが生成されたときに自動的に実行されます。

メソッドの種類

メソッドには、インスタンスメソッド、クラスメソッド、スタティックメソッドがあります。

それぞれの違いを解説していきます。

インスタンスメソッド

インスタンスメソッドは、インスタンスを生成することで呼び出すことができるメソッドです。

インスタンス名.メソッド名

第一引数には、self を使います。

よく使われるメソッドです(test1.py で定義しているメソッドです)。

クラスメソッド

クラスメソッドは、インスタンス化しなくても呼び出すことができるメソッドです。

メソッドの一番上に以下のコードを付けることで定義できます。

@classmethod

第一引数には、cls を使います。

スタティックメソッド

スタティックメソッドは、インスタンス化しなくても呼び出すことができるメソッドです。

メソッドの一番上に以下のコードを付けることで定義できます。

@staticmethod

self や cls といった引数は必要ありません。

最後に

いかがでしょうか。

今回は、クラスの使い方について、解説しました。

メソッドに関しても、いくつか種類があるので、慣れておいた方が良いかと思います。