クラスについて

Pythonでつかうクラスですが、インスタンス、オブジェクト、コンストラクタなどよくわからない言葉がならんでいます。 機械学習をするためには、クラスをよく使うので、避けては通れません。

今回は、クラスについてまとめてみました。

まずは調べてみます

インターネットで調べると、たい焼き機の話が分かりやすいので、下のとおりまとめました。

<クラスの概念>

まずは下の図を見てください。たい焼きの型=クラス、たい焼きを焼く=インスタンス化、たい焼き=インスタンスとなります。 インスタンス化の時に中身をきめると、いろいろなたい焼きになります。

実際に上の絵をみて、クラスとインスタンス化をやってみます。

実行すると「あんこ」と表示されます。中身は引数として設定します。引数を増やせば、いろいろな種類の引数が使えます。 次のプログラムを実行すると中身に加えて、個数を設定できます。

さらに次のプログラムを実行すると、梱包の種類を設定できます。まずはインスタンスを作成するときに、たい焼きの中身と個数をセットします。 そして、関数の「KonpouType」で紙袋をセットします

カスタードに加えて、個数10個、紙袋が表示されます。

<クラス属性>

今度は、クラス属性を変更して、たい焼きをイルカ焼きに変更していきます。

下のプログラムを実行すると、Class_Taiyaki.KataType=イルカとなります。

<継承>

今度は、クラスを継承して、たい焼きの生地を小麦粉から米粉に変更します。

下のプログラムを実行すると、Taiyaki_2.Kiji=米粉になります。

上記のプログラムでは、親クラスを呼び出した後、子クラスを呼び出します。そして、親クラスの表示、子クラスの表示をしていますが、 それぞれ呼び出したときの引数が正しく表示されます。また子クラスで設定した生地も米粉にセットされました。
クラスは機械学習を行う場合、サンプルプログラム等でつかわれるので、コードを読んで理解するためにも重要です。

<コンストラクタとは>

コンストラクタの名前は「__init__」に決まっています

<オブジェクトとは>

オブジェクトは、今回はたい焼きを作るという事と考えてよいと思います。みなさんは、どんなたい焼きが欲しいか? 考えて注文すると、必要なたい焼きを手に入れることができるという事です。

<クラスファイルをつくる>

これまでは、1つのファイルで作成して、実行しました。同じファイルの中なので、あまり実感がなかったかもしれません。 しかし通常クラスは別ファイルで作成するので、クラスファイルを作成して、それを実行ファイルから呼び出します。 作成するファイルは2つですが、実行ファイルからクラスファイルを呼び出します。

from クラスファイル import クラス名
で実行できます。クラスファイルは拡張子の「.py」を抜いた名前です。

Takoyakiya.py

Main_ClassTest.py

Takoyakiya.pyの中のClass_Taiyakiを呼び出すと、そのクラスが使えるようになります。機械学習でいろいろな ライブラリを利用しますが、from ~ import ~ の意味が分かっていた方が良いです。
これでクラスについては終わりにします。

-------------