こんばんは。
本書にてライブラリとクラスについて学び終わりました。
まずクラスについてですが、C++と違ってprivateなメンバ変数というのが厳密にはないというのに驚きました。
変数の前にアンダースコアを2つ付ければ、private変数ということにする等、クラスのカプセル化を運用で回避というのが、C++とはすごく違うなと。
C++はこういった定義は厳密にされていたので、この辺はC++の考え方がしっくりきますね。運用で回避というのは間違いが起きる元ですもんね。
しかしPythonではPEP8というコーディング規約の考え方がプログラマーの方やIDEにもしっかりと浸透しているみたいなので、問題ないのかな?この辺もまたC++のコーディングの仕方がプログラマーそれぞれで違うという自由な感じと違うところですね。
クラスの継承については「子クラス(親クラス)」で記述がすむので、分かりやすくていいなと思いました。C++は継承もprivateなのかpublicなのかprotectedなのか、どう継承するか選べますもんね。
なんでも自由に細かく決めれるC++はやはり上級者向けだったのですね。
私もいずれはC++を使いこなせるようになりたいものです!
ライブラリについては最高によく出来た仕組みだなと感じました!
C/C++でいうとこの#includeみたいなノリなのでしょうけど、いろいろな種類のライブラリが気軽に使えてなんと便利なことでしょう。
GUIのプログラムを作るならこのライブラリ、Webアプリを作るならこのライブラリ、画像処理するならこのライブラリとなんでもあるし、使い方も簡単だし、すごいです!
C++でもこういうライブラリ群が気軽に使えればいいのにねー。
ライブラリをインストールする方法もIDEのコンソール画面で「pip install ライブラリ名」で勝手に取ってきてくれるし、すごく楽ですね!
ちなみにC++でプログラムを作っていたときにはまった時間取得もPythonの時間ライブラリで簡単に取得できました。
Pythonは簡単だけど、本格的なプログラミングも可能というのはこのライブラリが豊富にあることと使いやすいということが支えているんですね。
さて、ひとまずPythonの基礎的な文法や仕様について学習し終えました。
PythonにはポインタやテンプレートやSTLがなかったり、C/C++より細かい部分の覚えることが少なくて、基本的なことだけでいえばぼちぼちやっても2週間くらいで学習を終えれました。
Pythonでは作りたいアプリは大概作れることを知りましたが、私としては人工知能を作りたいということで、当初の道筋通り進んでいきたいと思います。