キカガク・AIスクールの復習その4〜オブジェクト指向のクラスとインスタンス

キカガクAIスクール
AI/IT関連本は腐る程ある。

プログラムの基本処理は、

順次
繰り返し(for文)
分岐(if文)

の、たった3つだ(*1)

これを制御構造といい、
プログラムはこの3つの制御構造の組み合わせでできている。

*1 このなかで一番難しいのは、繰り返し(for文)。決まってうまく回らない。

そして、
これら一連の処理をまとめたものを
「関数」といい、
その関数に
引数(*2)と呼ばれる入力データを渡し、
返り値という出力データを受け取る(*3)

かわいい無料イラスト使用。

それを繰り返して、
プログラミングしていくのだ(*4)

*2 ひきすう。いんすうと読むと素人なのがバレるので危険。Excel でもよく出てくるので(とくにif文書くとき)、何度か人前で発音しておいたほうがいい(実体験より)。
*3 学生時代習った関数(たとえば、y=2x)の概念とはちょっと違う感じだが、寄り道している暇はないのでスルーする。
*4 ちなみに、前回紹介した『Python ふりがなプログラミング』の章立てもこの順番になっているので、オススメ。

目次。このあと、関数の章が続く

しかし、
プログラミングでいちいち関数を書いていては、
膨大な数になってしまう。

そこで、出てくるのが、
「オブジェクト指向プログラミング」

オブジェクトとは、
プログラミングの対象をふわっとまとめた抽象概念なのだが、
定義を説明されてもよくわからない。

ただ、
具体例なら、少しは腹落ちする。

パワポで作るの大変だった(暇?)

たとえば、
ボタンというオブジェクトをプログラミングする場合、
まず、クラスという設計図を書き、
その設計図をもとに、
具体的な実体(=インスタンス)である
ボタン(例では黄色のOKボタン)を作るのだ(*5)

*5 なぜそんなことをするかは『オブジェクト指向でなぜつくるのか』に詳しい。

システム開発に携わる人が読む本。難しい(でも大切)。

それで、
設計図であるクラスとは、

データを入れる変数(=属性)と、
その変数を関数等で操作する(=メソッド)の枠組みで

こんなコードをかく(注 ボタンの例ではない)

Modelというクラスを設定。機械学習の予行演習だ。

で、ここで引っかかるのが、
第一引数の「self」だ。

お前は、何者?

ググってみると、

このselfは、インスタンス自身を示すものです。

って、だから、なんなん?

といってこれ以上調べてもよくわからないので、
とりあえず、

self を書いたほうが、いろんなことができるから

という説明で納得しとこう(このサイトを参照した。→こちらをクリック)

次に、
この設計図で実物を作る(=インスタンス化)のがこのコード。

outが消えているが、出力が3。

これはこういうもんだと覚えよう。

このクラスインスタンス化
実装でよく出てくるわりには、ふわっとした概念でつかみづらい。
これから実例を通して、少しずつ理解していこう。

Follow me!

PAGE TOP