プログラミング学習の最後の砦「クラス・インスタンス」をどう乗り切るか?
こんにちは。グラさんです。
プログラミングに必要な「直感力」を診断する「適正診断」を作ってみました。
ちょっと遊んでみてくださいね。
■プログラミング適正診断
https://www.reservestock.jp/page/fast_scoring/2060
ところで、
「とくにスクール上がりに多いんだけど、オブジェクト指向がわかってない奴らが多い」なんていうエンジニア経営者によく会います。
一体どういうことかというと、いきなりフレームワークから入るから、基礎ができずに、応用もできず、言われた部分しかできない。
けど一応仕事になっちゃうから困ったもんだというわけです。
受験勉強に例えると、本当はFランレベルの学力なのに、早慶コースに入るけど、実際学んだつもりになっていて、全く点数がとれていないという状況に似ています。
そういうわけで「関数」すら書けないエンジニアも希少品種として存在しているわけです。
以前に、プログラミングは理屈で理解するのではなくて、物事を現象として捉えるという話をしました。
今度は「クラス」について、観察してみましょう。
まず、「Class」は変数と関数の集まりだとわかります。
(その関数部分をメソッドと言います。)
次にインスタンス変数とは、
self.name = name
における「name」のことで、
色々な人の名前を引き出すときに使うのかなって感じに推測されます。
そのクラスで使われているインスタンス変数をみてると、何の用途に使われるのかが推測できます。
次に「インスタンス」をみていると、
「〇〇.name」とか「〇〇.bet()」
における「〇〇」のことで、
前者は所有格、後者は自動詞みたいな使い方になっています。
これは「オブジェクト名.関数名」という順序の書き方です。
string.isdigit()もそうです。Be動詞的な使い方をしてますね。
メソッドは「自動詞的」なのに対して、
関数の場合は、関数に引数を放り込んで何かをさせるという「他動詞的」な使い方でした。
そして、Class内のメソッドの引数には必ず「self」があります。
インスタンスを扱うときは、必ず「self」がつきまといます。
これだけ知っておくと、なんとなくですが「クラス」と「インスタンス」が書けてきます。
さて、これを「概念」で説明するとこうなります。
■超簡単。「クラス・インスタンス」を世界一わかりやすく解説
確かに分かりやすく解説はされていますが、
見たところで、わかったつもりになって、やっぱり書けないですよね。
だから、書かなくちゃいけないんです。
やっぱり「書けるが先、理解はあと」なのです。
というわけで、好評いただいております「Python短期集中講座(関数編)」ですが、「クラス・インスタンス編」をご用意いたしました。
3時間半でみっちり体に染み込ませる講座です。
オブジェクト指向で自信を取り戻したい方はぜひご挑戦ください。
■Python短期集中講座【クラス・インスタンス編!!】