だぶるばいせっぷす 新館

ホワイトカラーではないブルーカラーからの視点

【プログラミング】 python奮闘記 その6 ~モジュールってなに?

前回は、ざっくりとして関数の話をしました。
kimniy8.hatenablog.com
実際の書き方などについては、今後、実際にプログラムをしていく過程で実践していけたらなと思っています。
というのも、関数は過去に紹介したモノ全てを扱える上に、関数自体も関数内に組み込めたり出来るので、例を1~2個書いただけでは伝わらないと思うんですよね。
それに、私自身が勉強を始めたばかりという事で、まだまだ分からないこと尽くしですし…

という事で、関数の話は概念だけに留めておいて、次はモジュールの話をしていきます。

実はpythonというのは、インストールして実行しただけでは、使える能力というのがかなり制限されていたりします。
正直、出来ることが少なすぎて、何が出来るのかすら想像するのが難しいほどです。
まぁ、私と違って物凄く賢い人は、今までに私が紹介してきた事柄だけを使って、自分で『出来ること』を増やしていくんでしょうけれども…
凡人の私には、そんな1を聴いて10を実行するなんて事は出来ません。

では、どうするのか。 pythonでは、モジュールをimportする事によって、機能を拡張することが可能になり、それによって様々なプログラムが利用できるようになります。
他の例で例えるなら、レゴブロックのようなもんです。

pythonをダウンロードしてインストールするというのは、レゴで言うなら、基本パーツを買ってくるだけの状態と同じです。
物凄く想像力が豊かな人であれば、基本パーツを組み立てるだけで、自分の想像通りの世界観を再現できるかも知れません。
想像力が豊かなだけでなく、類まれなる知識や技術があれば、基本パーツを加工することによって、なんでも作ることが加工でしょう。

でも、凡人の私達のような人間は、基本パーツだけを渡されたとしても、積み木遊びの延長のようなことしか出来ません。
『宇宙船を作ってみたいなぁ』と思っても、どうやったら格好の良い宇宙船が作れるのかも分からない。

自分が想像する世界観を実現する為には、どうしても、宇宙船が欲しいけど、自分じゃ作れない…
じゃぁ、どうするの?って時に、レゴの世界ならどうしますか?
そうです。 レゴのスターウォーズシリーズを買ってくれば良いんです!
『格好いい車が欲しいな…』と思えば、レゴニンジャゴーを買ってくれば良い。

この発想はpythonにも当てはまり、自分が実現したいプログラムがある場合、それを実現する為のモジュールをimportすれば、出来る事がグッと広がるんです。

モジュールには、pythonのパッケージをダウンロードした時点でついてくるものもあれば、独自にダウンロードしてこなければならないものもあります。
自分の作りたいプログラムには何が必要なのかを見極めて、そのモジュールをimportする事が、素人がプログラムを完成させるために必要な第一歩となります。

ここで、『じゃぁ、必要なモジュールをimportさえしてしまえば、プログラムを作るのって簡単なの?』と思われる方も多いかも知れません。
確かに、この考えは間違っていないと思います。
適切なモジュールをimportして、その機能を理解して使いこなせれば、自分が全くの1から作るよりも、飛躍的に楽になると思います。
何なら、モジュールが提供している機能を知るだけで、想像力が刺激されて『プログラミングで作りたいもの』がポンポンと出てくるかも知れません。

プログラムに限らず、新分野の勉強をする際に一番重要なものって『ゴール』の設定ですし、そのゴールである『完成品』のアイデアがポンポン出てくるのは、勉強にとってかなりのプラスになると思います。

ただ・・・
モジュールに関しての一番の問題点は、『素人には、どのモジュールがどんな機能を提供しているのかを簡単に調べられない』って事です。
誤解のないように書いておくと、モジュール一覧を検索して見つけて来ること自体は、誰でも簡単に出来るんですが、それを読み解くのに、かなりの根気と知識が必要になってくるんです…
https://docs.python.org/ja/3/library/index.html

リンク先を読んで『余裕で理解できた!』って方は、こんなブログは読みに来ていないと思いますので、多くの方が、逆に混乱したんじゃないかと思います。
私もそうでした。
ただ、こればかりは、日々の勉強によって覚えていくしか無いようにも思えます。

ちなみにAmazonでは、まず最初に『やりたいこと』を決め、そこから逆引きでモジュールを調べられるという本なども売られていたりします。


      

書籍を紹介しておいてなんですが、私はここで紹介した2冊は読んでませんので、この2冊を勧めているわけではありません。買ったあとで文句言うとかは止めてくださいね。
あくまでも、こんな本もあるよって紹介しただけなので、使いやすいかどうかは知りません。読んだ人は感想を教えてください。

モジュールに関して他に書いておきますと、モジュールそのものは、クラスの定義や関数を人まとまりにしたファイルなので、自分自身でクラスや関数の定義が出来るのであれば、自分自身でモジュールを作ることも可能です。
つまり、プログラムを作る際に一度作ったクラスや関数は、他のプログラムを作る際にも使いまわしが出来るってことなんです。

心の広い方などは、自身がプログラムする際に創ったモジュールを、他の方も使えるように一般公開されたりもしているので、モジュールというのは時間が経つ毎にドンドン増えていく。
それに加え、自分自身で創ったモジュールも増えていくので、プログラムは最終的には、自作パソコンを組み上げる様な感覚に近くなっていくんだと思います。

自作パソコンの場合、自身でCPUの開発などはしなくて良く、各メーカーが出す部品を組み立てるだけで、部品を作り上げる知識が無かったとしても、部品のスペックや相性問題を知っていれば、パソコンを作り上げることが可能になります。
それと同じで、オブジェクト指向のプログラミングというのは、色んな人達がクラスや関数の定義をするので、部品がドンドンと積み上がっている状態で、その部品の存在や特性を理解してさえいれば、複雑なプログラムも作り上げることが可能になると言ったものなんでしょう。

簡単に言いましたが、実際にはその『部品』の量が多すぎて、日々の継続した勉強が必要になってくるんでしょうけれどもね。
今回は、モジュールの簡単な説明をしましたが、次回は、モジュールの導入の仕方などを書いていこうと思います。
kimniy8.hatenablog.com