スポンサーリンク

Python クラス

クラス

クラスは、「物」のことをまとめるのに使います。

また、「物」ができる処理を「メソッド」と呼びます。

例えば、「物」を自動車とすると、メソッドは、運転する、ブレーキをかけるなどの「物」が行える動作のことです。

 

計算を「物」として見て、足し算を「動作」としてCalcクラスを下記にまとめました。

class Calc:
    """
    計算クラス
    """

    def __init__(self, a, b):
        """
        コンストラクタ
        """
        self.a = a
        self.b = b

        return

    def add(self):
        """
        足し算するメソッド
        """
        return self.a + self.b

Calcクラスを利用した別のpythonファイル「main.py」が下記です。

from calc import Calc

# インスタンス生成
calc1 = Calc(1, 2)

calc2 = Calc(3, 3)

print(calc1.add()) # => 3
print(calc2.add()) # => 6

main.pyの実行結果は下記の通りです。

3
6

処理の順番に説明していきます。

下記は、同じディレクトリにある、calc.pyのCalcクラスをインポートしています。

from calc import Calc

 

下記では、Calcインスタンスを作っています。

インスタンスつくることで、そのクラスのメソッドを扱うことができます。

calc1 = Calc(1, 2) 
calc2 = Calc(3, 3)

 

また、インスタンスを作る際、メソッド名[__init__]を宣言しているクラスからインスタンスを作ったとき、このメソッドが呼ばれます。これをコンストラクタと呼びます。

引数にあるselfとは、インスタンス自身で、今回の場合はcalc1, calc2のことです。
self.a, self.bはインスタンスフィールドと呼ばれ、インスタンスごとに持っている変数データです。

    def __init__(self, a, b):
        """
        コンストラクタ
        """
        self.a = a
        self.b = b
        return

 

下記では、インスタンス名.「メソッド名」で、メソッドを呼びだしてその結果を出力します。

print(calc1.add()) # => 3
print(calc2.add()) # => 6

 

命名規則

クラスやメソッドの命名規則は、PEP8という規約が標準です。

PEP8

クラス、メソッドの命名規則は以下の通りです。

クラス

  • 最初の文字は大文字で、単語区切りで大文字(CapWords方式)
  • 物をクラスとするため、名詞となる単語を利用する。
  • (例) Car, AccountManager

 

メソッド

  • すべて小文字で、単語ごとにアンダースコア区切り。
  • 動詞から始まり、動詞とほかの単語を組み合わせた名前を使われることが多い。
  • (例) get_gasoline, create_account