クラス
クラスは、「物」のことをまとめるのに使います。
また、「物」ができる処理を「メソッド」と呼びます。
例えば、「物」を自動車とすると、メソッドは、運転する、ブレーキをかけるなどの「物」が行える動作のことです。
計算を「物」として見て、足し算を「動作」として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という規約が標準です。
クラス、メソッドの命名規則は以下の通りです。
クラス
- 最初の文字は大文字で、単語区切りで大文字(CapWords方式)
- 物をクラスとするため、名詞となる単語を利用する。
- (例) Car, AccountManager
メソッド
- すべて小文字で、単語ごとにアンダースコア区切り。
- 動詞から始まり、動詞とほかの単語を組み合わせた名前を使われることが多い。
- (例) get_gasoline, create_account