2017年12月21日木曜日

[Python] クラスとインスタンス

クラス:データの構造と計算ロジックを共に指定したもの

クラスを作る際には,以下の要領でコードを作成します.
class クラス名:
    def 関数名1(引数):
        関数名1の処理

    def 関数名2(引数):
        関数名2の処理
上記の例では,関数は2つですが,幾つでも追加することが可能です.

まずは,例としてsample_class という名前のクラスを作ってみます.
>>> class sample_class:
...     def __init__(self, data1, data2):
...             self.data1 = data1
...             self.data2 = data2
...     def method2(self):
...             return(self.data1 + self.data2)
1つ目の関数 __init__ というのは特殊な関数で,クラスの初期化を行うコンストラクタと呼ばれます.クラスにデータを格納する関数としてコンストラクタを使用します.

クラスは,データの構造と計算ロジックを共に指定したものなので,実際にデータを中に格納したものをインスタンスと呼びます.

実際にインスタンスを生成するには,以下のようにします.
>>> sample_instance = sample_class(data1 = 2, data2 = 3)
これで,data1 に 2 が,data2 に 3 が格納されたインスタンス sample_instance の出来上がりです.コンストラクタの引数の self とは,クラス自身のことを指すので,指定は不要です.

中身のデータを取り出すには,ドット記号を使います.
>>> sample_instance.data1
2

自身の関数を使う場合も,ドット記号を使います.
>>> sample_instance.method2()
5

クラスにデータを格納した インスタンス を実際に使っていくことと,インスタンスの中身(データや計算のロジック)を取り出す場合にはドット記号を使います.

厳密にはインスタンスはクラスの「実体」という扱いです.
クラスが設計図で,インスタンスが設計図を基に作られたモノになります.厳密ではありませんが,データ分析をする場合には設計図というよりは データの構造 を指定したものがクラスだと考えるとわかりやすいです.

0 件のコメント :

コメントを投稿