本記事は,python入門講座シリーズの内容になります。その他の記事は,こちらの「Python入門講座/実践講座まとめ」をご覧ください。ターゲットは主にpythonを使ったことがない人向けで,簡潔で分かりやすい説明を心がけています。
今回のお題
モジュールを作って自分でインポートできるようになろう!
写経
1.まずは前回作ったkakkoの関数を定義したファイルを「.py」という拡張子で保存します。名前は「module1」とでもしておきましょう。
2.下のコードを入力して(意味が分からなくてもOK),先ほどのファイルをアップロードしてください。
3.Google Colaboratoryで先ほどのデータがアップロードされていることを確認
4.新しノートブックを作ります。
5.新しいノートブックには,このようなコードを書いてみてください。
この一連の動作が,モジュールの作成と利用になります。以下では,モジュールとは何か,インポートとは何か,パッケージやライブラリとの違いは何かについてお伝えしていきます。
ポイント
import module1
# ↑↑module1ってナニ??
# そもそも.pyって??
今回のポイントは,モジュールについての理解と使い方に関してです。
解説
モジュールは,ひとことで言えば「Pythonのファイル」のことを指します。そして,「.py」というのはPythonのファイルにつけられる拡張子です。つまり,今回作成してアップロードした「module1.py」というファイルこそが,モジュールだったのです。
Pythonでモジュールを読み込むためには,importという文を使います。モジュールを読み込むことを,インポートと呼びます。
import モジュール名(.pyは不要)
importでモジュールを読み込んでしまえば,以下のようにしてモジュール内の関数を利用することができます。
モジュール名.関数名(引数)
今回は,module1モジュールのkakko, kakko_talk, kakko_repeatの3種類の関数を呼び出してみました。似たような用途のモジュールを1まとめにしたものが「パッケージ」,パッケージをいくつか集めたものが「ライブラリ」と呼ばれています。
大きなまとまりから,小さなまとまりをインポートするときは,以下のような構文を利用します。こうすることで,小さなかたまりを中心にしてコードを記述していくことができます。
from 大きなかたまり import 小さなかたまり
ちなみに,大きなかたまりをインポートすると以下にような面倒な状況になってしまいます。
# モジュールのかたまりがA>B>C>Dだとすれば
# Dのメソッドを呼び出すためには
A.B.C.D()
#面倒すぎますね
また,インポートしたモジュール(パッケージ,ライブラリ)に名前を付けるには,asを使います。短く名前を付けることで,コード全体が読みやすくなります。よく利用されるモジュールやパッケージには,慣例的な名前が使われます。例えば,Numpyライブラリは「np」という名前が付けられるのが暗黙の了解になっています。
import numpy as np
# y = np.mean(x)のように使います